HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

Про сокеты и миллионы пакетов в секунду с одного CPU ядра
Архитектуры

Доклад принят в Программу конференции
Tempesta Technologies

Основатель и системный архитектор Tempesta Technologies, эксперт в области высокопроизводительных вычислений в Linux/x86-64.

Тезисы

select(2) и poll(2) - медленные, epoll(7) - быстрый. Чтобы решить задачу c 10k запросов, мы используем потоки, мультиплексирование и многоядерные серверы. Но что будет, если эти 10 тыс. запросов придут одновременно (например, случится DDoS)? Как быстро сервер установит все эти соединения и обработает запросы? Сколько пакетов в секунду держат обычные сокеты на одном процессорном ядре?

В докладе будет рассказано

* о том, как пакет в Linux попадает с сетевого адаптера в TCP-сокет процесса;

* о том, как работает установление новых соединений, мультиплексирование и чтение из сокетов;

* о том, как ускорить прикладной сервер (оптимизация accept(), MSI-X и RPS/RFS, GRO);

* о том, что этого недостаточно - можно быстрее: как работает Oracle Reliable Datagram Sockets?

* О том, что можно делать все еще быстрее: переход к полностью синхронным сокетам (не путать с блокируемым вводом-выводом).

Другие доклады секции
Архитектуры

Rambler's Top100