Cambiare Scheduler IO in Linux

In questo articolo vediamo come cambiare lo scheduler IO per i vari dispositivi (HDD, dispositivi USB, SSD, ecc…)

Cos’è lo scheduler IO? Lo scheduler IO è un algoritmo (quindi un software) che dice al sistema operativo, in che ordine devono essere eseguite le varie richieste di input e output.

è evidente quindi che l’uso di uno scheduler piuttosto che di un altro, può variare anche le performance e l’affidabilità delle operazioni di I/O.

 

scheduler IO

 

Per prima cosa vediamo da terminale, quali sono i scheduler IO disponibili col vostro kernel.

il comando è il seguente

cat /sys/block/sdx/queue/scheduler

NOTA: Ovviamente dovete cambiare sdx, con il dispositivo che volete voi, ad esempio sda (generalmente usato per il disco primario)

Otterrete un output simile

noop deadline cfq [bfq]

Il “nome” racchiusa tra parentesi quadre, è l’algoritmo attualmente in uso.

 

Ora per cambiare (momentaneamente) scheduler I/O, vi basterà dare i seguenti comandi:

sudo -s

In questo modo accedete alla shell come utente root (vi chiederà la password, voi dovete mettere la password del vostro utente)

NOTA: se il vostro utente non ha il permesso di usare “sudo”, al posto di “sudo -s” dovete dare il comando “su” e inserire la password dell’utente root.

 

Ora che avete ottenuto i permessi di root, potete cambiare algoritmo con il seguente comando:

echo ALGORITMO > /sys/block/sdx/queue/scheduler

Dove al poso di ALGORITMO metterete il nome dell’algoritmo che volete voi (ad esempio bfq), e come prima, al posto di sdx, metterete il dispositivo per cui vogliate che venga usato questo algoritmo (ad esempio sda).

 

a questo punto lo scheduler I/O è cambiato (fino al prossimo riavvio), potete verificarlo dando nuovamente il comando iniziale:

cat /sys/block/sdx/queue/scheduler

 

se volete che le modifiche rimangano anche dopo il riavvio, dovete salvare queste modifiche in un apposito file.

per farlo, digitare il comando:

sudo gedit /etc/tmpfiles.d/set_IO_scheduler.conf

NOTA: se come editor di testo non usate gedit, inserite il nome del vostro editor di testo

e al suo interno inserite:

w /sys/block/sdx/queue/scheduler – – – – ALGORITMO

come prima sostituite sdx e ALGORITMO, ad esempio

w /sys/block/sda/queue/scheduler – – – – bfq

A questo punto salvate il file e chiudetelo, e potete vedere che al successivo riavvio, lo scheduler I/O è cambiato.