Dla jądra Linux przygotowano optymalizacje, które zwiększają wydajność planerów wejścia/wyjścia.

Jens Axboe, twórca io_uring oraz planerów wejścia/wyjścia CFQ, Deadline i Noop, kontynuuje swoje eksperymenty z optymalizacją wejścia/wyjścia w jądrze Linux. Tym razem zwrócił uwagę na planery wejścia/wyjścia BFQ i mq-deadline, które okazały się wąskim gardłem przynajmniej w przypadku szybkich dysków NVMe.

Jak wykazało badanie sytuacji, jedną z kluczowych przyczyn nieoptymalnej wydajności podsystemów planerów wejścia/wyjścia były problemy z konkurencyjnymi blokadami (lock contention, próba uzyskania blokady, trzymanej przez inny wątek). Dzięki środkom mającym na celu zmniejszenie konkurencji podczas przetwarzania blokad, takim jak serializacja dyspozycji i wstawianie żądań, wydajność planerów wzrosła w wielu sytuacjach wielokrotnie (w IOPS).

Podczas testowania planera BFQ za pomocą narzędzia fio, wydajność wzrosła z 567K do 1551K operacji wejścia/wyjścia na sekundę, a konkurencja blokad spadła z 96% do 30%. W przypadku mq-deadline wydajność po zastosowaniu proponowanych poprawek przy użyciu dysku NVMe wzrosła z 1070K do 2560K operacji wejścia/wyjścia na sekundę (IOPS), a konkurencja blokad spadła z 94% do 23%.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster