TsgcWebSocketServer_HTTPAPI › Propiedades › FineTune
Parámetros de nivel de núcleo en modo kernel que determinan cómo http.sys encola, despacha y completa las solicitudes.
property FineTune: TsgcServerHTTPAPI_FineTune read FFineTune write SetFineTune;
QueueLength=1000, SkipIOCPOnSuccess=False, OperatingMode=ompClassic, HighPerfAcceptsPerWorker=4
QueueLength es la profundidad de la cola de solicitudes del kernel (HttpServerQueueLengthProperty); una vez llena, http.sys responde con 503 Service Unavailable sin involucrar al modo de usuario — auméntela para absorber ráfagas de reconexión (hasta 65535). SkipIOCPOnSuccess habilita FILE_SKIP_COMPLETION_PORT_ON_SUCCESS en la cola de solicitudes para que los éxitos síncronos se despachen en línea sin un paquete IOCP (ignorado en Windows XP). OperatingMode elige entre ompClassic (hilo aceptador único + PostQueuedCompletionStatus, comportamiento histórico) y ompHighPerf (patrón HP de MSDN de Microsoft: sin aceptador, ThreadPoolSize x HighPerfAcceptsPerWorker recepciones asíncronas pre-publicadas en el IOCP vinculado a la cola); cámbielo solo antes de la activación. HighPerfAcceptsPerWorker (predeterminado 4) amplía la ventana de recepción pre-publicada para cargas de trabajo de alta concurrencia — cada recepción pre-publicada mantiene un búfer del tamaño de ReadBufferSize hasta que se completa. Consulte la guía HTTPAPI FineTune para una discusión completa.
oServer := TsgcWebSocketServer_HTTPAPI.Create(nil);
oServer.Host := '0.0.0.0';
oServer.Port := 8080;
// high-concurrency IoT backend
oServer.FineTune.QueueLength := 10000;
oServer.FineTune.OperatingMode := ompHighPerf;
oServer.FineTune.HighPerfAcceptsPerWorker := 8;
oServer.FineTune.SkipIOCPOnSuccess := true;
oServer.Active := true;