Linux. Неблокируемоый сервер. Какой тип лучше использовать?
Если очень много открытых соединений (n), то poll и epoll. Если активных соединений (k) меньше, то epoll будет лучше. Он «просмотрит» список дескрипторов за О(k), а poll за O(n).

По теме:
stackoverflow.com/questions/5383959
stackoverflow.com/questions/4039832
Вам наверное стоит обратить внимание на курс лекций Сетевое программирование в UNIX, которые подготовили специалисты SkyDNS и компании «Айдеко»
а конкретней на лекцию о том Как решить проблему 10 000 соединений?, где
Автор курса Александр Патраков объясняет, какие функции можно вызывать вместо select(), чтобы переписанная с их использованием программа могла эффективно обрабатывать большое количество одновременных подключений.

Практическое задание состояло в переписывании астрологического сервера с использованием семейства функций epoll() и проверке, выдерживает ли он 10000 соединений.