
Da qualche settimana il sito Phoronix sta seguendo con particolare interesse le evoluzioni di un tema relativo al Kernel Linux: performance di operazioni input/output su singolo core.
Questo particolare aspetto della gestione delle risorse della CPU può avere grande impatto sulle performance generali: la velocità (intesa quantità al secondo) di scritture e letture, in particolare su disco, che si riescono a completare è il più comune collo di bottiglia dell’intero sistema.
La ricerca (o missione) per l’incremento delle performance è stata iniziata a fine agosto da Jens Axboe, sviluppatore di riferimento per IO_uring, (semplificando) la parte del Kernel che si occupa di gestire le operazioni di I/O relative alla CPU. L’idea era poter migliorare il codice per poter sfruttare appieno le nuove memorie a stato solido, come le Intel Optane: persistenza del dato dell’hard disk e velocità di accesso e lettura/scrittura piuttosto vicina alla RAM.
Con i primi test, si diceva con soddisfazione, si era arrivati a 3.5M (milioni) di IOPS (operazioni Input/Output al secondo) per singolo core: un aumento del 10%.
In pochi mesi si sono susseguiti una serie di nuovi annunci:
- a fine settembre, si era saliti a 5.1M di IOPS;
- a inizio ottobre, 7M di IOPS;
- solo una settimana dopo, 8M di IOPS;
- fine ottobre (pochi giorni fa), 10M di IOPS.
La crescita è davvero impressionante, avendo triplicato (e più) le prestazioni di picco in meno di due mesi. Tanto che è possibile tutto questo sarà disponiibile per tutti già dal Kernel 5.16.
Solo i tipi di memoria più performanti (come le citate Optane) potranno beneficiare appieno delle nuove prestazioni, ma tutti dovrebbero avere dei miglioramenti. Le ottimizzazioni trovate, infatti, coinvolgono la gestione delle richieste e della memoria in generale, e non sono specifiche per alcune situazioni rare.
Insomma, la situazione è interessante. La parte più bella? Potrebbe migliorare ancora!
Ho coltivato la mia passione per l'informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.