зыж
> О том, что в Linux с асинхронным чтением все очень плохо (и плохо по сей день), я более-менее подробно расписал в статье: https://www.nginx.com/blog/thread-pools-boost-performance-9x/ах да, в вашей «статье» почему-то не замечены уже упомянутые выше (не говоря о менее известных):
> Системный вызов splice() впервые появился в Linux 2.6.17; поддержка в glibc добавлена в версии 2.5.
> …
> ЗАМЕЧАНИЯ
> Три системных вызова — splice(), vmsplice(2), and tee(2), предоставляют пользовательским программам полный контроль над произвольным буфером ядра; они реализованы в ядре на базе того же типа буферов, который используется для канала. Эти системные вызовы выполняют следующие задачи:
> splice() перемещает данные из буфера в произвольный файловый дескриптор или наоборот, и из одного буфера в
другой.
> tee(2) «копирует» данные из одного буфера в другой.
> vmsplice(2) «копирует» данные из пользовательского пространства в буфер.
не хотелось бы думать что это мозоль от нимба «разработчика nginx».
ззыж
я не разраб nginx, но к разработке например некоторых субд имел отношение. в рамках обсуждения они и более показательны (по всем параметрам кстати), и на ядре linux в подавляющем большинстве дают приличную фору бзде.
так что может в вашей консерватории вам ещё есть что подправить? ну, после нимба?