Als je werkt met een GNU/Linux desktop dan geniet je natuurlijk van een vlot werkende computer. Zo start Ubuntu bijvoorbeeld lekker vlot op en over het algemeen verricht het zijn taken naar behoren. Maar er zijn wel degelijk momenten dat je wenkbrauwen omhoog schieten. Je herkent het mogelijk wel:
je kopieert een groot bestand of een heleboel mappen van de ene naar de andere locatie. Dat kan even duren. Ondertussen wil je dan een ander programma opstarten of zelfs even rustig naar een film kijken die nog ergens op je harde schijf staat te wachten.
Ai…dat gaat niet altijd even goed. Het duurt geruime tijd voordat een programma opstart of die film blijft gewoon stilstaan. Je zou denken dat het kan komen door tekort schietende hardware of door een tekort aan geheugen maar de kans is groot dat je tegen een verkeerde disk I/O scheduler bent aangelopen.
Disk I/O scheduler
Laten we eens kijken wat dat uberhaupt is. WikipediA legt het als volgt uit:
Input/output (I/O) scheduling is the method that computer operating systems use to decide in which order the block I/O operations will be submitted to storage volumes. I/O scheduling is sometimes called disk scheduling.
I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek). To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal arm/head movement.
Noop, deadline of cfg
Linux kent 3 verschillende disk I/O schedulers: ‘noop’, ‘deadline’ & ‘cfq’ (default). Maar Ubuntu is een tijd geleden over gestapt op ‘deadline’. En terecht wat de praktijk leerde dat ‘deadline’ sneller kon werken dan de standaard ‘cfg’. Maar sinds de laatste kernels (vanaf Ubuntu 14.10 en dus ook met Ubuntu 15.04) blijkt dat de kernel er anders over ging denken. En daardoor werkt ‘deadline’ niet meer zo goed als oorspronkelijk was bedoeld.
Gelukkig valt dat op te lossen. Je kan heel eenvoudig je computer weer opstarten met behulp van de ‘cfg’ disk I/O scheduler. Maar zoals Johan Cruyff ons ooit heeft geleerd: “elk voordeel heeft zijn nadeel” In dit geval zal een switch naar ‘cfg’ de responsiviteit van Ubuntu vergroten maar daardoor zal het kopiëren van die bestanden (iets) langer gaan duren als je tegelijkertijd veel andere taken wil uitvoeren.
Verander je disk I/O scheduler
De methode is simpel. Je opent GRUB’s configuratie bestand in je editor. Ik gebruik hier nano en wel als volgt:
sudo nano /etc/default/grub
Zoek nu in dat bestand de regel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
en verander dat in:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=cfq"
Sla het bestand op en laat GRUB weten dat het zich ander moet gedragen door:
sudo update-grub
Herstart nu je computer en test het uit. Voor mij blijft het de standaard instelling onder Ubuntu 15.04.