Operating System Overhead System calls cause a lot of overhead. This is especially relevant for servers that use select() or poll(). As the number of file-descriptors grows, the total time spent in the select() call grows relative to the time spend actually processes packets. Solution 1: use several processes/threads, each will perform a select() on a smaller number of file descriptors. Solution 2: use two processes, one performs select() on the recently active descriptors, the other - on the non-active descriptors.