IO_uring получава повишено бързодействие чрез поддръжка за големи zero‑copy receive буфери

0
27

Разработчиците на Linux подготвят важна оптимизация за IO_uring: поддръжка на големи receive буфери в zero‑copy пътя. Пачът е дело на Pavel Begunkov (Meta) и вече е приет в for-next клона на Jens Axboe, което означава, че ще влезе в следващия цикъл на ядрото – очаквано около Linux Kernel6.20–7.0.

Какво решава тази промяна

Досега zero‑copy receive механизмът в IO_uring работеше с буфери до 4K. Това е достатъчно за масови конфигурации, но ограничава производителността при по-мощни мрежови карти, които могат да обработват значително по-големи пакети.

Новата поддръжка позволява използване на receive буфери над 4K, което води до:

  • по-малко прекъсвания и по-малко копиране на данни
  • по-висока ефективност при високоскоростни мрежови адаптери
  • по-ниска процесорна консумация при големи входящи пакети

Колко е голям ефектът

Според данните, цитирани от разработчиците, преминаването от 4K към 32K receive буфери може да подобри CPU ефективността с до 30%.
Любопитното е, че това се постига с под 40 реда нов код – малка промяна с голямо влияние.

Къде се намира пачът

Промените вече са в for-next клона на Axboe под името for-7.0/io_uring-zcrx-large-buffers, което практически гарантира включването им в следващата версия на ядрото.

Прочетете още:  KDE увери, че Plasma никога няма да изисква systemd от потребителите