linux - select vs poll vs epoll
sockets posix-select (3)
El autor de CURL escribió un artículo sorprendente sobre las bibliotecas de encuestas versus select vs event .
Estoy diseñando un nuevo servidor que necesita soportar miles de conexiones UDP (alrededor de 100,000 sesiones). ¿Alguna entrada o sugerencia sobre cuál usar?
La respuesta es epoll si está utilizando Linux, kqueue si está utilizando FreeBSD o Mac OS X, y puertos de terminación de E / S si está en Windows.
Algunas cosas adicionales que (casi con certeza) querrá investigar son:
- Técnicas de equilibrio de carga
- Redes multihilo
- Arquitectura de base
- Tablas hash perfectas
Además, es importante tener en cuenta que UDP no tiene "conexiones" en lugar de TCP. También le conviene comenzar desde pequeño y ampliar en gran escala, ya que las soluciones de depuración basadas en red pueden ser un desafío.
Linux: epoll
FreeBSD: kqueue
Windows: ??
Hay librerías wrapper, como libevent y libev, que pueden resumir esto por ti.