Jens Axboe, autor io_uring i planera za ulaz/izlaz CFQ, Deadline i Noop, nastavio je svoje eksperimente s optimizacijom ulaza/izlaza u Linux kernelu. Ovaj put su mu u fokusu bili planeri ulaz/izlaz BFQ i mq-deadline, koji su se pokazali kao uska grla barem u slučaju brzi NVMe diskova.
Istraživanje situacije pokazalo je da su jedan od ključnih uzroka neoptimalne izvedbe podsubsistema planera ulaz/izlaz bile probleme s konkurentnim zaključavanjima (‘lock contention’, pokušaj stjecanja zaključavanja koje drži druga nit). Zahvaljujući mjerama usmjerenim na smanjenje konkurencije pri obradi zaključavanja, poput serijalizacije raspoređivanja i umetanja zahtjeva, brzina rada planera značajno je porasla u niz situacija (u IOPS).
Prilikom testiranja planera BFQ alatkom fio, izvedba je porasla s 567K na 1551K operacija ulaz/izlaz u sekundi, dok je konkurencija zaključavanja smanjena s 96% na 30%. U slučaju mq-deadline, izvedba nakon primjene predloženih zakrpa pri korištenju NVMe diska povećana je s 1070K na 2560K operacija ulaz/izlaz u sekundi (IOPS), a konkurencija zaključavanja smanjena je s 94% na 23%.
Izvor: opennet.ru
