Snabba upp Ubuntu Netbook Remix vid användning av SSD-disk  

Postat av rancor under ,

De flesta Netbooks använder riktigt billiga SSD-diskar (Solid State Drive) vilka är extremt långsamma mot en vanlig hårddisk eller mer moderna SSD som går att köpa löst. Eftersom Netbookmarknaden är ordentligt prispressad så har tillverkarna inte råd att sätta in ordentliga SSD-diskar och vi får sega system då detta blir en ordentlig flaskhals.

I Ubuntu finns det några saker man kan "skruva" på för att öka hastigheten något och här följer några prestandahöjande tips.

Montera filsystemet som noatime
Som standard monteras filsystemet med relatime vilket innebär att atime för varje fil uppdateras varje gång en användare eller ett program läser i en fil vilket nästan alltid är helt onödigt. Det innebär i praktiken att filsystemet ligger och uppdaterar normalt sätt värdelös information vilket tär på prestandan. Lösningen är att montera filsystemet med noatime vilket stänger av den funktionen.

Editera /etc/fstab och ändra följande rad (UUID skiljer sig mellan varje dator, ändra inte det värdet). Ersätt relatime med noatime enligt följande:

UUID=f0ae2c59-83d2-42e7-81c4-2e870b6b255d / ext3 noatime,errors=remount-ro 0 1

noop I/O schema
I en traditionell hårddisk finns läsarmar som tar tid att flytta på när data som skall läsas finns på en sektor en bit ifrån den aktuella sekorn där armen står för tillfället. I en SSD-disk så finns det inga mekaniska delar och söktiden, alltså den tid det tar att förflytta sig från en sektor till en annan är i princip obefintlig mot en vanlig hårddisk. För att snabba upp hårddiskarna så finns det lite trix att göra för att förutse vart data finns på disken och vilken data som snart skall läsas för slippa hoppa fram och tillbaka för mycket på disken. Detta är inget som behövs på en SSD-disk då man kan göra läsningar sekvensiellt och låta SSD-diskens kontroller sköta all intelligens. Det är bevisat i benchmark att det finns fördelar med noop på SSD-diskar men även om man kör datorn i en virtuell miljö eller med vissa raid-kontroller.

Editera /boot/grub/menu.lst och lägg till "elevator=noop" som en option.
Leta upp följande avsnitt, högst troligt längst ner i filen:
## ## End Default Options ##

title Ubuntu 9.04, kernel 2.6.28-11-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=9968730b-3291-486c-8da3-0bd58fcbbcfb ro quiet splash elevator=noop
initrd /boot/initrd.img-2.6.28-11-generic
quiet

Lägg till "elevator=noop" efter "kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=9968730b-3291-486c-8da3-0bd58fcbbcfb ro quiet splash".

Vid uppdatering av kärnan så kommer denna inställning att gå förlorad vilket man löser genom att ange noop som standardvärde.
Leta även upp följande avsnitt:
# defoptions=quiet splash
och ändra det till:
# defoptions=elevator=noop quiet splash
Stänga av ScrollKeeper
ScrollKeeper är ett program som indexerar meta-data i dokument på datorn och vid installation av nya program (apt, Synaptic osv.) så belastar detta disken enormt vilket gör att installationer tar väldigt lång tid. ScroolKeeper är inte så ofta använt och på en Netbook kan man lika väl stänga av funktionen.

Skriv följande i terminalen:
sudo mv /usr/bin/scrollkeeper-update /usr/bin/scrollkeeper-update.real
sudo ln -s /bin/true /usr/bin/scrollkeeper-update
sudo find /var/lib/scrollkeeper/ -name \*.xml -type f -exec rm -f '{}' \;
sudo dpkg-divert --local --divert /usr/bin/scrollkeeper-update.real --add /usr/bin/scrollkeeper-update
Minska på slitaget på SSD-disken
Normalt så slits inte en SSD-disk ut under en livslängd av en dator men dessa billiga Netbooks har inte alltid de bästa diskarna och då kan det vara bra att både minska på slitaget men även minska på skrivningarna för att få bättre prestanda för övriga operationer. Loggar är något man kanske inte behöver spara på sin Netbook och då kan man med fördel lägga loggningen på en virtuell disk i ramminnet (som töms efter varje omstart).

Editera /etc/fstab och lägg till följande rader i slutet:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
Editera sedan /etc/init.d/sysklogd och leta upp följande stycke:
fix_log_ownership()
{
for l in `syslogd-listfiles -a`
do
chown ${USER}:adm $l
done
}
Ersätt samtliga ovan rader med föjande:
fix_log_ownership()
{
for l in `syslogd-listfiles -a --news`
do
# Create directory for logfile if required
ldir=$(echo ${l} | sed 's/[^\/]*$//g')
if [ ! -e $ldir ] ; then
mkdir -p $ldir
fi
# Touch logfile and chown
touch $l && chown ${USER}:adm $l
done

}
Några program kommer också att gnälla för att /var/log inte finns med sina egna kataloger för sina loggar.

Editera /etc/rc.local och lägg till följande rader direkt ovanför "exit 0":
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba unattended-upgrades ; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done

Nu skall förhoppningsvis systemet gå lite snabbare

// rancor

2 kommentarer

Tack, rancor.

Stilig sammanfattning - gäller dessa även för 9.10:an med ext4?

*NEJ*

Inte allt. Jag har påbörjat en ny guide för 9.10 och det flesta kan man återanvända men rubriken "Minska på slitaget på SSD-disken" fungerar inte. tmpfs får systemet att vägra starta vilket jag har labbat och funderat på hur man skall lösa.

Funderar på om jag kanske hinner publicera guiden i kväll.

// rancor

Skicka en kommentar