Revitalizace starého notebooku pomocí SSD disku

Možná se Vám také stalo, že Váš původně drahý notebook za pár let „zastaral“ a dnes už jen stěží dýchavičně zvládá plnit Vaše očekávání.
Ukážeme si jak pomocí Linuxu, mírného hardwarového upgrade (je – li nutný) a SSD disku můžeme tento problém vyřešit.
Náš starý notebook může ještě nějaký čas sloužit a kolegové v okolí mohou blednout závistí nad tím, jak je ten Váš dědeček svižný
(zatím co oni čekají, než jim to jejich „dělo“ s nejmenovaným OS vůbec naběhne :-))

notebooktuxCo potřebujeme:
– alespoň 2GB RAM (více je lépe (pozor na limit u 32 bitových operačních systémů))
– notebook, který „rozumí“ SATA diskům.  (Možná, že by šla použít nějaká „redukce, ale to jsem nezkoušel).

– SSD disk (možno zakoupit i v našem e-shopu).

Postup:

Nainstalovalujeme naši oblíbenou distribuci Linuxu.
Já jsem zvolil v tomto případě Ubuntu Studio 9.10, protože je výrazně rychlejší než předchozí verze – a to i v případě použití EXT2):

  • Jako souborový systém se mi v současné době nejvíce osvědčil EXT2.
    Lze sice použít EXT3 i EXT4 nebo FS pro FLASH disky, ale posledně jmenovaný je zatím v experimentálním stádiu a s EXT4 jsem neměl v tomto případě nejlepší zkušenosti (to se do budoucna dozajista změní).
  • Disk jsem rozdělil obvyklým způsobem včetně oddílu pro swap. Ten později vypnu. Zjistil jsem však, že je dobré ho mít „v záloze“ pro případ, že slabý procesor opravdu „nestíhá“.

Poinstalační úpravy:

Protože SSD disky jsou citlivé na časté přepisy díky omezené životnosti buněk, používají různé „pomůcky“ k rovnoměrnému rozdělení „zátěže“ mezi všechny buňky. My si pro jistotu pomůžeme i dalšími způsoby. Jeden z prvních je použití „nežurnálovacího“ souborového systému (v mém případě EXT2).

Dále upravíme vlastnosti tohoto systému v /etc/fstab takto:

    • Vypneme časovou aktualizaci (pokud jsme to již neudělali při instalaci) přidáním parametru noatime, který
      zakáže úpravu informací o posledním přístupu k souboru a nodiratime zakáže úpravu informací o posledním přístupu ke složce.
    • Pokud jsme se přece jen rozhodli pro použití nějakého žurnálovacího FS, parametrem data=writeback můžeme změnit způsob zacházení se žurnálem na rychlejší metodu. Parametr nobh se zase snaží se zabránit asociaci počátečních adres bufferu (pouze pro „writeback“ mód).
    • Vypneme realtime příznak (pokud jsme to již neudělali při instalaci)
    • Úpravou fstab dále umístíme dočasné soubory a adresáře do paměti RAM:

      tmpfs /tmp tmpfs noatime 0 0
      tmpfs /var/log tmpfs noatime 0 0
      tmpfs /var/tmp tmpfs noatime 0 0

      Tím jsme přemístili adresáře /tmp, /var/log a /var/tmp do RAM.
       

    • Vypneme odkládací prostor (swap) tím, že jej zakážeme v souboru fstab.
      Pokud odkládací prostor z nějakého důvodu přece je potřebujeme používat,
      můžeme omezit jeho použití příkazem:
      sysctl -w vm.swappiness=10
       
    • Vypnutí optimalizace elevatoru:
      Ve výchozím režimu používá Linux elevator tak, aby optimalizoval čtení i zápis z klasické rotující diskové plotny. Protože SSD disky žádné pohyblivé části nemají, je tato funkce zbytečná a snižuje jeho výkon. Proto pokud máte v pc pouze SSD disk(y), můžete přidat parametr elevator=noop přímo do Grubu. Například takto:

      kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=/dev/sda2 rhgb quiet elevator=noop

      V opačném případě je potřeba přidat tento parametr jen pro SSD, aby neovlivnil chování ostatních disků. Toho lze docílit přidáním příkazu:

      echo noop > /sys/block/sda/queue/scheduler

      do souboru:

      /etc/init.d/boot.local

      kde sda je disk, kterému chceme parametr přidat (může být sdb, sdc, …, záleží na vašem zapojení a nastavení v BIOSu)

    Vzorový konfigurační soubor /etc/fstab potom může vypadat například takto:/dev/disk/by-id/ata-OCZ_VERTEX-TURBO_202B960A7RM94280ELSX-part1 /                    ext3       noatime,nodiratime,nobh,data=writeback             1 1
    /dev/disk/by-id/ata-OCZ_VERTEX-TURBO_202B960A7RM94280ELSX-part2 /home                ext3       noatime,nodiratime,nobh,data=writeback             1 2
    proc                 /proc                proc       defaults              0 0
    sysfs                /sys                 sysfs      noauto                0 0
    debugfs              /sys/kernel/debug    debugfs    noauto                0 0
    usbfs                /proc/bus/usb        usbfs      noauto                0 0
    devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
    /dev/disk/by-id/ata-WDC_WD3200KS-00PFB0_WD-WCAPD1646323-part1 /home/djs_core/data  ext3       defaults              1 2

    Reálný výkon disku můžeme zjistit příkazem:

    hdparm -Tt /dev/sda

    Zdroj: http://www.opensuse.cz/kategorie/clanky-navody/solid-state-drive-v-opensuse
    http://www.djscore.org

    =================

    Optimalizace Ext4 pro SSD disky [Fedora 10]:

    Vytvoříme Ramdisky pro oblasti do kterých se často zapisuje:

    1. Upravíme soubor /etc/fstab
    Přidáme následující řádky:

    tmpfs /var/log tmpfs defaults 0 0
    tmpfs /tmp tmpfs defaults 0 0
    tmpfs /var/tmp tmpfs defaults 0 0

    Vypneme časové atributy:

    1. Upravíme /etc/fstab. Přidáme parametry noatime a nodiratime:
    /dev/sda2 / ext4 defaults,noatime,nodiratime 0 0

    Provedeme optimalizaci kernelu:

    1. Přidámé následující do souboru /etc/rc.local:
    # Economize the SSD
    sysctl -w vm.swappiness=1 # Strongly discourage swapping
    sysctl -w vm.vfs_cache_pressure=50 # Don’t shrink the inode cache aggressively

    # As in the rc.last.ctrl of Linpus
    echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
    cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_max > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

    echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
    echo 20 > /proc/sys/vm/dirty_ratio
    echo 10 > /proc/sys/vm/dirty_background_ratio

    echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
    echo 10 > /sys/module/snd_hda_intel/parameters/power_save
    echo 5 > /proc/sys/vm/laptop_mode

    #Decrease power usage of USB while idle
    [ -w /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level
    [ -w /sys/bus/usb/devices/5-5/power/level ] && echo auto > /sys/bus/usb/devices/5-5/power/level

    /sbin/setpci -d 197b:2381 AE=47
    /sbin/modprobe pciehp
    /sbin/modprobe sdhci

    Změníme nastavení I/O Scheduleru:

    1. Upravíme soubor  /etc/grub.conf do kterého přidáme  elevator=noop v řádku pro kernel.
    kernel /vmlinuz-2.6.27.5-117.fc10.i686 ro root=/dev/sda2 rhgb quiet elevator=noop

     

    Zdroj: http://hwarf.com/2009/01/26/aspire-one-fedora-10/
    http://hwarf.com/2009/01/26/aspire-one-fedora-10/

    Revitalizace starého notebooku pomocí SSD disku