Servidor EPOLL
Un aceptador epoll de Linux para alta concurrencia. Atienda miles de conexiones en el servidor sgcWebSockets usando un pool de hilos limitado en lugar de un hilo por conexión, como hace Indy por defecto.
Un aceptador epoll de Linux para alta concurrencia. Atienda miles de conexiones en el servidor sgcWebSockets usando un pool de hilos limitado en lugar de un hilo por conexión, como hace Indy por defecto.
Un modo de I/O de alto rendimiento para servidores basados en Indy en Linux. Active epoll en el servidor estándar mediante la propiedad IOHandlerOptions y escale mucho más allá del modelo de un hilo por conexión.
TsgcWebSocketServer / TsgcWebSocketHTTPServer — activado mediante IOHandlerOptions
Aceptador epoll de Linux con pool de hilos — solo Linux
Linux
Enterprise
Seleccione iohEPOLL en la propiedad IOHandlerOptions de un servidor Indy para cambiar del modelo de hilos por defecto al pool de hilos epoll.
Server.IOHandlerOptions.IOHandlerType := iohEPOLL;
Server.IOHandlerOptions.EPOLL.EPOLLThreads := 0;
Server.IOHandlerOptions.EPOLL.WorkOpThreads := 0;
Server->IOHandlerOptions->IOHandlerType = iohEPOLL;
Server->IOHandlerOptions->EPOLL->EPOLLThreads = 0;
Server->IOHandlerOptions->EPOLL->WorkOpThreads = 0;
Server.IOHandlerOptions.IOHandlerType = iohEPOLL;
Server.IOHandlerOptions.EPOLL.EPOLLThreads = 0;
Server.IOHandlerOptions.EPOLL.WorkOpThreads = 0;
Cómo funciona el pool de hilos epoll y cómo ajustarlo a su carga de trabajo.
Atienda miles de conexiones usando un pool de hilos limitado en lugar de un hilo por conexión. Las peticiones asíncronas (overlapped) se reparten por el pool en lugar de dedicar un hilo a cada socket.
Hilos usados para las peticiones asíncronas de EPOLL. El valor por defecto 0 significa que el número se calcula a partir del número de procesadores. En Delphi 7 y 2007 el valor por defecto es 32 porque cpucount no está soportado. Ajústelo manualmente cuando sea necesario.
Por defecto cada petición de una conexión puede ejecutarse en un hilo distinto del pool. Establezca WorkOpThreads para fijar cada conexión al mismo hilo. Esto afecta al rendimiento, así que establezca un valor mayor que cero solo cuando requiera esta función.
Recomendado cuando necesite atender miles de conexiones. Si su servidor maneja un máximo de en torno a 100 conexiones simultáneas, puede quedarse con el modelo de hilos por defecto de Indy.
EPOLL detecta un socket caído solo al escribir. Para disparar OnDisconnect, active CleanDisconnect := True en TsgcWebSocketClient, o active un heartbeat del lado del servidor que haga ping a los clientes periódicamente.
Aumente el límite de descriptores de archivo abiertos para incrementar el número de conexiones abiertas simultáneas. ulimit -n 10000 fija el número máximo de descriptores de archivo abiertos en 10000.
Fuentes autorizadas del mecanismo en el que se apoya este modo.
Accede directamente a la ayuda en línea, descarga el proyecto demo listo para ejecutar y lee el manual completo.
| Ayuda en línea — EPOLL Referencia completa de la función con ejemplos de código para Delphi, C++ Builder y .NET. | Abrir | |
| Proyecto demo — Demos\Server Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba más abajo. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre todos los componentes de la biblioteca. | Abrir |