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.
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
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.
Seguiteci 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.
L'articolo [Guida] Sysadmin GNU/Linux : cos’è l’I/O scheduler sembra essere il primo su Linux Freedom.
Leggi il contenuto originale su Linux Freedom