TsgcWebSocketServer_HTTPAPI속성 › FineTune

FineTune Property

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(단일 acceptor 스레드 + PostQueuedCompletionStatus, 기존 동작)과 ompHighPerf(Microsoft의 MSDN HP 패턴: acceptor 없음, 큐 바인딩 IOCP에서 ThreadPoolSize x HighPerfAcceptsPerWorker 사전 게시된 비동기 수신) 중에서 선택합니다. 활성화하기 전에만 변경하십시오. 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;

속성으로 돌아가기