Jens Axboe, az io_uring és a CFQ, Deadline, valamint Noop I/O ütemezők alkotója, folytatta a Linux kernel I/O optimalizálásával kapcsolatos kísérleteit. Ezúttal az I/O ütemezők, a BFQ és a mq-deadline került a figyelme középpontjába, amelyek szűk keresztmetszetet jelentettek legalábbis a nagy sebességű NVMe tárolók esetében.
A helyzet tanulmányozása során kiderült, hogy a versenyblokkolásokkal („lock contention”, más szál által tartott zár megszerzésének kísérlete) kapcsolatos problémák voltak a legfontosabb okai az I/O ütemezők alacsony hatékonyságának. Az olyan intézkedések, melyek célja a blokkolások kezelésénél a versengés csökkentése, mint a lefogási sorozat és a lekérdezések beillesztése, számos helyzetben jelentősen növelték az ütemezők teljesítményét (IOPS).
A BFQ ütemező tesztelése során a fio segédprogrammal a teljesítmény 567K-ról 1551K-ra nőtt I/O műveletek másodpercenként, míg a blokkolás versengése 96%-ról 30%-ra csökkent. A mq-deadline esetén a javasolt foltok alkalmazása után, NVMe tároló használatával, a teljesítmény 1070K-ról 2560K-ra nőtt I/O műveletek másodpercenként (IOPS), a blokkolás versengése 94%-ról 23%-ra csökkent.
Forrás: opennet.ru
