Способы решения этой проблемы, поднятой еще в 2001 году программистом
Дэном Кегелем, рассматриваются в девятой лекции курса «Сетевое
программирование в UNIX», подготовленного специалистами
SkyDNS и компании
«Айдеко». За подробностями –
видео.
Из рассмотренных до того подходов модель
prefork работает, но является расточительной с точки зрения памяти, а
select()– не работает вообще.
Автор курса
Александр Патраков
объясняет, какие функции можно вызывать вместо select(), чтобы
переписанная с их использованием программа могла эффективно обрабатывать
большое количество одновременных подключений.
Практическое задание состояло в переписывании астрологического сервера с
использованием семейства функций epoll() и проверке, выдерживает ли он
10000 соединений.
А сколько одновременных соединений выдержит астрологический сервер на вашем ноутбуке?
Слайды доступны
здесь.
Предыдущие лекции:
1.
Курс для тех, кто не боится UNIX и C
2.
Каждому клиенту по процессу
3.
Реализуем протокол или как работают астрологи
4.
О том, как читать до конца
5.
Программы в автоматном стиле — трудности перевода
6.
Как делать несколько дел одновременно и в то же время по очереди?
7.
Эффективное чтение
8.
Как сделать программу нетерпеливой?
комментарии (8)