web analytics
input output monitor iostat iotop ionice sysadmin

[Guida] Sysadmin GNU/Linux : cos’è l’I/O scheduler

Questa mini guida può essere considerata come un continuo dell’articolo sull’input output monitoring. L’amministratore di sistema, infatti, dopo aver monitorato le attività di I/O, deve ottimizzare il sistema. A questo scopo vi parlerò dell’I/O scheduler.

I/O Scheduler: un mondo di algoritmi

Lo scheduling delle attività di input output è il metodo di decisione dell’ordine con cui inviare ai volumi le request di I/O. Questo genere di decisioni, ovviamente, è preso tramite un complesso algoritmo. Semplificando, va scelto lo scheduler che più si adatta ai nostri bisogni, dato una sistema di vincoli spesso in conflitto tra loro. A titolo esemplificativo, uno scheduler deve:

  • Tener conto della posizione fisica sul disco della testina;
  • Organizzare le request per gruppi contigui;
  • Dare priorità alle operazioni di lettura;
  • Garantire equità tra tutte le request;
  • Minimizzare il seek time.

io scheduler fedora 32 sysadmin

La scelta dello scheduler, quindi, dipende dall’hardware e dai compiti specifici cui è dedicata la macchina. Un server utilizzato come database ed un computer desktop, ad esempio, hanno differenti esigenze. Se si vuole scoprire quale algoritmo è in uso, nell’esempio per un SSD denominato sda, basta utilizzare questa direttiva:

cat /sys/block/sda/queue/scheduler

Quali sono i margini di manovra per un sysadmin

Come si può notare dall’immagine che vi ho riportato, questa macchina utilizza, per sda, lo scheduler bfq. Una descrizione di questo particolare algoritmo, la potete trovare qui. Per modificare l’algoritmo utilizzato su questo specifico dispositivo, ad esempio con mq-deadline, l’istruzione da utilizzare è:

echo "mq-deadline" | sudo tee /sys/block/sda/queue/scheduler

io scheduler bfq

I parametri configurabili dal sysadmin, possono essere trovati nella cartella /sys/block/sda/queue/iosched. Ad esempio fifo_expire_sync indica il valore, in millisecondi, del timeout relativo alle request di tipo sincrono. Fifo_expire_async, parallelamente, quelle di tipo asincrono.

Se volete approfondire l’argomento, un buon punto di partenza potrebbe essere questa pagina della wiki di Ubuntu.

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.

Altre storie
kde plasma 5.20 wallpaper
KDE Plasma su Ubuntu su Windows 10 grazie al WSL 2: ecco come