Jens Axboe, tvůrce io_uring a plánovačů I/O CFQ, Deadline a Noop, pokračoval ve svých pokusech s optimalizací vstupu/výstupu v jádře Linux. Tentokrát se zaměřil na plánovače I/O BFQ a mq-deadline, které se ukázaly jako úzké hrdlo alespoň v případě rychlých NVMe úložišť.
Studie situace ukázala, že jednou z klíčových příčin suboptimálního výkonu subsystémů plánovačů I/O byly problémy s konflikty zámků. Díky opatřením zaměřeným na snížení soutěže při zpracování zámků, jako je serializace dispatcheru a vkládání požadavků, se rychlost plánovačů v řadě situací výrazně zvýšila (v IOPS).
Při testování plánovače BFQ nástrojem fio se výkon zvýšil z 567K na 1551K operací I/O za sekundu, zatímco soutěž o zámky se snížila z 96% na 30%. V případě mq-deadline se výkon po aplikaci navržených patchů při použití NVMe úložiště zvýšil z 1070K na 2560K operací I/O za sekundu (IOPS), a soutěž o zámky klesla z 94% na 23%.
Zdroj: opennet.ru
