TsgcWebSocketServer_HTTPAPIEigenschaften › FineTune

FineTune Eigenschaft

Low-Level-Kernel-Mode-Stellschrauben, die festlegen, wie http.sys Anfragen in eine Queue stellt, verteilt und abschließt.

Syntax

property FineTune: TsgcServerHTTPAPI_FineTune read FFineTune write SetFineTune;

Standardwert

QueueLength=1000, SkipIOCPOnSuccess=False, OperatingMode=ompClassic, HighPerfAcceptsPerWorker=4

Hinweise

QueueLength ist die Tiefe der Kernel-Anfragewarteschlange (HttpServerQueueLengthProperty); wenn voll, antwortet http.sys mit 503 Service Unavailable, ohne den User-Mode einzubeziehen — erhöhen Sie ihn, um Reconnect-Bursts abzufedern (bis zu 65535). SkipIOCPOnSuccess aktiviert FILE_SKIP_COMPLETION_PORT_ON_SUCCESS auf der Anfragewarteschlange, sodass synchrone Erfolge inline abgefertigt werden, ohne ein IOCP-Paket (auf Windows XP ignoriert). OperatingMode wählt zwischen ompClassic (einzelner Acceptor-Thread + PostQueuedCompletionStatus, historisches Verhalten) und ompHighPerf (Microsofts MSDN-HP-Muster: kein Acceptor, ThreadPoolSize x HighPerfAcceptsPerWorker vorab gepostete asynchrone Empfänge auf dem warteschlangengebundenen IOCP); nur vor der Aktivierung ändern. HighPerfAcceptsPerWorker (Standard 4) erweitert das vorab gepostete Empfangsfenster für Workloads mit hoher Nebenläufigkeit — jeder vorab gepostete Empfang hält einen Puffer in der Größe von ReadBufferSize, bis er abgeschlossen ist. Eine ausführliche Erörterung finden Sie im Leitfaden HTTPAPI FineTune.

Beispiel


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;

Zurück zu Eigenschaften