Jens Axboe, crĂ©ateur d'io_uring et des planificateurs d'E/S CFQ, Deadline et Noop, a poursuivi ses expĂ©riences sur l'optimisation des E/S dans le noyau Linux. Cette fois, il s'est penchĂ© sur les planificateurs d'E/S BFQ et mq-deadline, qui se sont rĂ©vĂ©lĂ©s ĂȘtre des goulets d'Ă©tranglement, du moins dans le cas des disques NVMe rapides.
Comme l'indique l'Ă©tude de la situation, l'une des principales raisons de la performance sous-optimale des sous-systĂšmes des planificateurs d'E/S Ă©tait les problĂšmes de contention de verrouillage (« lock contention »), c'est-Ă -dire lorsqu'un thread essaie d'obtenir un verrou dĂ©tenu par un autre thread. GrĂące Ă des mesures visant Ă rĂ©duire la concurrence lors du traitement des verrous, comme la sĂ©rialisation de la distribution et l'insertion de requĂȘtes, la vitesse des planificateurs a augmentĂ© dans plusieurs situations (en IOPS).
Lors des tests du planificateur BFQ avec l'outil fio, les performances ont augmenté de 567K à 1551K opérations d'E/S par seconde, tandis que la concurrence de verrouillage a chuté de 96 % à 30 %. Dans le cas de mq-deadline, aprÚs application des correctifs proposés avec un disque NVMe, les performances ont grimpé de 1070K à 2560K opérations d'E/S par seconde (IOPS), et la concurrence de verrouillage a diminué de 94 % à 23 %.
Source : opennet.ru
