Ho un SSD nel mio laptop e mi è stato detto che è preferibile passare allo scheduler "noop".
Come posso passare allo scheduler noop e dove posso apportare la modifica in modo che sia persistente durante i riavvii?
Ho un SSD nel mio laptop e mi è stato detto che è preferibile passare allo scheduler "noop".
Come posso passare allo scheduler noop e dove posso apportare la modifica in modo che sia persistente durante i riavvii?
Risposte:
Modifica / etc / default / grub, come gksudo gedit /etc/default/grub
, qui è necessario aggiungere elevator = noop.
Cambia GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
inGRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
.
Quindi eseguire sudo update-grub2
e riavviare.
Supponiamo che il tuo disco rigido sia /dev/sda
. Quindi è possibile controllare per vedere quale scheduler è attualmente in uso per esso:
cat /sys/block/sda/queue/scheduler
(Lo scheduler attualmente in uso sarà racchiuso tra [
]
parentesi.)
E potresti farlo usare lo scheduler noop:
echo noop > /sys/block/sda/queue/scheduler
Vedi questo articolo per ulteriori informazioni.
Per rendere persistente la modifica, è possibile inserire il comando /etc/rc.local
.
sudo echo noop > /sys/block/sda/queue/scheduler
? Ciò non funziona, poiché la shell, che viene eseguita come utente, imposta il reindirizzamento prima di eseguire il comando il cui output viene reindirizzato. Puoi usare echo noop | sudo tee /sys/block/sda/queue/scheduler
invece. Vedi Impossibile echo "ciao"> x.txt anche con sudo? e come risolvere il "permesso negato" quando si usa sudo con reindirizzamento in Bash? per ulteriori informazioni e altri approcci. (Se non è quello che vuoi dire, per favore fammi sapere.)
Questo riferimento Debian mostra come rilevare dinamicamente gli SSD e modificare lo scheduler di conseguenza:
In sistemi con diversi tipi di unità è possibile regolare le impostazioni con una regola udev (creare /etc/udev/rules.d/60-ssd-scheduler.rules):
# Imposta lo scadenzario per i dischi non rotanti
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0",ATTR{queue/scheduler}="deadline"
Per assicurarsi che il kernel sia in grado di rilevare lo stato di rotazione:
$ for f in /sys/block/sd?/queue/rotational; do printf "$f is "; cat $f; done
/sys/block/sda/queue/rotational is 1
/sys/block/sdb/queue/rotational is 1
/sys/block/sdc/queue/rotational is 0 <=== Only this is SSD!
Tutto quanto sopra è citato direttamente dal riferimento Debian, che ha molti altri elementi di interesse per gli utenti SSD per la prima volta.