Статья разбирает, почему
select и poll не тянут десятки тысяч соединений. Каждый вызов заставляет ядро перебирать весь список дескрипторов заново.epoll и kqueue переворачивают схему: ты один раз регистрируешь интерес, ядро само будит тебя. Стоимость ожидания зависит от числа активных событий, а не от общего числа соединений.
Подвох в режимах доставки: level-triggered напоминает о готовности, пока ты не вычитал данные. Edge-triggered сообщает только о смене состояния, и недочитанный буфер легко превращается в зависшее соединение.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
