Jens Axboe, krijuesi i io_uring dhe planifikuesve të hyrjes/dalitjes CFQ, Deadline dhe Noop, vazhdoi eksperimentet e tij me optimizimin e hyrjes/dalitjes në bërthamën Linux. Këtë herë, ai u përqendrua në planifikuesit e hyrjes/dalitjes BFQ dhe mq-deadline, të cilët u treguan si ngushtica në të paktën rastin e disqeve NVMe.
Studimi i situatës zbuloi se një nga shkaqet kryesore të performancës së papërshtatshme të sistemeve të planifikuesve të hyrjes/dalitjes është problemet me bllokimet konkurruese ("lock contention", përpjekja për të marrë një bllokim që mbahet nga një rrjedhë tjetër). Falë masave të orientuara për të zvogëluar garën në përpunimin e bllokimeve, si serializimi i dispetchimit dhe inserimi i kërkesave, shpejtësia e punës së planifikuesve u rrit në një sërë situatash disa herë (në IOPS).
Në testimin e planifikuesit BFQ me mjetin fio, performanca u rrit nga 567K në 1551K operacione hyrje/daljeje në sekondë, ndërsa garat për bllokim u zvogën nga 96% në 30%. Në rastin e mq-deadline, performanca pas aplikimit të patch-ev të propozuara duke përdorur një disk NVMe u rrit nga 1070K në 2560K operacione hyrje/daljeje në sekondë (IOPS), ndërsa garat për bllokim u zvogën nga 94% në 23%.
Burimi: opennet.ru
