TsgcWebSocketServer_HTTPAPI属性 › FineTune

FineTune 属性

影响 http.sys 如何对请求进行排队、分发和完成的底层内核模式调节项。

语法

property FineTune: TsgcServerHTTPAPI_FineTune read FFineTune write SetFineTune;

默认值

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

备注

QueueLength 是内核请求队列深度(HttpServerQueueLengthProperty);队列满时,http.sys 会回复 503 Service Unavailable 而不涉及用户模式,增大此值可吸收重连突发(最高 65535)。SkipIOCPOnSuccess 在请求队列上启用 FILE_SKIP_COMPLETION_PORT_ON_SUCCESS,使同步成功的操作可以内联分发而无需 IOCP 数据包(在 Windows XP 上忽略)。OperatingModeompClassic(单接受者线程 + PostQueuedCompletionStatus,历史行为)和 ompHighPerf(Microsoft MSDN HP 模式:无接受者,ThreadPoolSize x HighPerfAcceptsPerWorker 个在队列绑定 IOCP 上预发布的异步接收)之间选择;只能在激活前更改。HighPerfAcceptsPerWorker(默认值 4)扩大高并发工作负载的预发布接收窗口,每个预发布的接收在完成前占用一个 ReadBufferSize 大小的缓冲区。完整讨论请参见 HTTPAPI FineTune 指南。

示例


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;

返回属性