Linux / on tmpfs
Linux / on tmpfs Release status: stable [box doku] | |
---|---|
Description | Boot your linux to RAM |
Author(s) | siro |
Last Version | 1 |
Original Artikel[Bearbeiten | Quelltext bearbeiten]
http://www.silentpcreview.com/forums/viewtopic.php?t=48568
Worum gehts ?[Bearbeiten | Quelltext bearbeiten]
Ziel ist es das rootfs / beim booten in eine Ramdisk / als tmpfs zu einzuhängen.
Vorteile:
- Schnelle Dateizugriffe
- System ist immer im Originalzustand, Änderungen werden nicht dauerhaft gespeichert
- Bei Ausschalten der Festplatten im PC:
- Keine Geräuschentwicklung
- Geringerer Stromverbrauch
- Längere Lebensdauer der Platten/ Flash
Nachteile:
- Boot dauert lange (1-2 Minuten)
- Speichern / Updates sind umständlicher
- Bei Stromausfall Datenverlust
- Großer Speicherplatz-Verbrauch im RAM (je nach Größe der root- Partition) (2 GB sind OK, bei >8GB im PC)
Voraussetzung[Bearbeiten | Quelltext bearbeiten]
- Live-CD
- Debian oder Ubuntu
- mkinitramfs
- genug Arbeitsspeicher
Ramdisk / tmpfs[Bearbeiten | Quelltext bearbeiten]
http://de.wikipedia.org/wiki/Tmpfs
http://de.wikipedia.org/wiki/Ramdisk
'tmpfs (engl. für Temporary File System) ist ein Dateisystem, das in vielen Unix-artigen Betriebssystemen als verbesserter Ersatz für eine Ramdisk eingesetzt wird. Im Gegensatz zur Ramdisk bei der realer Arbeitsspeicher verwendet wird, wird bei tmpfs virtueller Arbeitsspeicher statt der Festplatte als Speicher benutzt.'
Wie gehts ?[Bearbeiten | Quelltext bearbeiten]
Möglichkeit A:
- 1. Distribution mit Live-Cd installieren. Die root-Partition ( / )möglichst klein halten. /home und /boot auf separate Partitionen. /swap nicht vergessen.
- 2. Nach der Installation in das installierte System wechseln mit chroot:
/dev/sdaX (root-Partition) und /dev/sdaY (boot-Partition) anpassen ! sudo -s mkdir /mnt/boot mount /dev/sdaX /mnt/ mount /dev/sdaY /mnt/boot mount -o bind /dev /mnt/dev mount -t proc /proc /mnt/proc mount -o bind /sys /mnt/sys chroot /mnt /bin/bash cp /etc/fstab /etc/fstab.old nano /etc/fstab
- 3. /etc/fstab anpassen:
Die Zeile mit dem Eintrag / ändern in:
none / tmpfs defaults 0 0
- 4. Das local-script in initramfs ändern (gibs da nen besseren weg ??)
cp /usr/share/initramfs-tools/scripts/local /usr/share/initramfs-tools/scripts/local.bak nano /usr/share/initramfs-tools/scripts/local
- 5. Dateien beim starten kopieren lassen
Die Zeile mit
# FIXME This has no error checking # Mount root mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}
auskommentieren und diesen Text einfügen:
mkdir /ramboottmp mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp mount -t tmpfs -o size=100% none ${rootmnt} cd ${rootmnt} cp -rfa /ramboottmp/* ${rootmnt} umount /ramboottmp
- 6. Initramdisk bauen lassen
mkinitramfs -o /boot/initrd.img-ramdisk
- 7. Aufräumen
mv /usr/share/initramfs-tools/scripts/local /usr/share/initramfs-tools/scripts/local.ram mv /usr/share/initramfs-tools/scripts/local.bak /usr/share/initramfs-tools/scripts/local
- 8. grub.cfg / menu.lst ändern (update-grub geht nicht ?)
Booteintrag kopieren und die Zeile ändern in
/initrd /initrd.img-ramdisk
- 9. Alles umounten
exit umount /mnt/dev umount /mnt/proc umount /mnt/sys umount /mnt/boot umount /mnt/ reboot
- 9. Beim booten neuen Booteintrag mit erstellter initrd auswählen und einige Zeit warten.
Ergebnis[Bearbeiten | Quelltext bearbeiten]
tiotest 0.3.3
test system:
- Kernel : Linux 2.6.38-8-generic (i686)
- Compiled : #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011
- Distribution : Ubuntu 11.04
- Desktop HP DC7900
- CPU Intel Q9400
- 3GB DDR2-800 3 Modules
- WDVeliciraptor 10k rpm 160GB
tiotest -f 200 (tmpfs)
Tiotest results for 4 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 800 MBs | 0.4 s | 1935.593 MB/s | 83.2 % | 1443.1 % | | Random Write 16 MBs | 0.0 s | 2049.987 MB/s | 105.0 % | 1469.5 % | | Read 800 MBs | 0.3 s | 2850.759 MB/s | 119.7 % | 1444.0 % | | Random Read 16 MBs | 0.0 s | 2677.806 MB/s | 68.6 % | 1919.6 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 0.007 ms | 2.432 ms | 0.00000 | 0.00000 | | Random Write | 0.006 ms | 0.213 ms | 0.00000 | 0.00000 | | Read | 0.004 ms | 0.516 ms | 0.00000 | 0.00000 | | Random Read | 0.004 ms | 0.141 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 0.006 ms | 2.432 ms | 0.00000 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------'
tiotest -f 200 (dev/sdb) Read/Random Read does not seem to be correct
Tiotest results for 4 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 800 MBs | 9.2 s | 87.266 MB/s | 12.0 % | 150.5 % | | Random Write 16 MBs | 5.0 s | 3.150 MB/s | 0.0 % | 0.0 % | | Read 800 MBs | 0.3 s | 2889.829 MB/s | 62.1 % | 1447.9 % | | Random Read 16 MBs | 0.0 s | 2571.593 MB/s | 65.8 % | 0.0 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 0.159 ms | 824.659 ms | 0.00000 | 0.00000 | | Random Write | 0.009 ms | 0.208 ms | 0.00000 | 0.00000 | | Read | 0.004 ms | 6.615 ms | 0.00000 | 0.00000 | | Random Read | 0.004 ms | 0.040 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 0.080 ms | 824.659 ms | 0.00000 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------'
installed grafics driver:
tiotest -d / -f 200 (tmpfs)
Tiotest results for 4 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 800 MBs | 0.3933 s | 2033.957 MB/s | 14.63 % | 231.92 % | | Random Write 16 MBs | 0.0075 s | 2070.359 MB/s | 0.0 % | 0.1 % | | Read 800 MBs | 0.2272 s | 3521.173 MB/s | 73.8 % | 73.8 % | | Random Read 16 MBs | 0.0044 s | 3550.329 MB/s | 0.0 % | 0.0 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 0.007 ms | 0.124 ms | 0.00000 | 0.00000 | | Random Write | 0.006 ms | 0.056 ms | 0.00000 | 0.00000 | | Read | 0.003 ms | 0.053 ms | 0.00000 | 0.00000 | | Random Read | 0.003 ms | 0.024 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 0.005 ms | 0.124 ms | 0.00000 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------'
testsetup:
- Kernel : Linux 2.6.38-8-generic (i686)
- Compiled : #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011
- Distribution : Ubuntu 11.04
- no graphics driver
- Desktop HP 8100E
- Core i7 860
- 4GB Memory 2 Modules (DDR3)
- WDVeliciraptor 10k rpm 160GB
Tiotest results for 4 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 800 MBs | 0.1489 s | 5372.806 MB/s | 2.80 % | 32.40 % | | Random Write 16 MBs | 0.0025 s | 6320.793 MB/s | 0.0 % | 0.0 % | | Read 800 MBs | 0.0928 s | 8616.790 MB/s | 11.7 % | 11.7 % | | Random Read 16 MBs | 0.0021 s | 7454.676 MB/s | 0.0 % | 0.0 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 0.003 ms | 0.048 ms | 0.00000 | 0.00000 | | Random Write | 0.002 ms | 0.011 ms | 0.00000 | 0.00000 | | Read | 0.002 ms | 0.025 ms | 0.00000 | 0.00000 | | Random Read | 0.002 ms | 0.023 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 0.002 ms | 0.048 ms | 0.00000 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------'