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 の事前ポストされた非同期受信)を選択します。アクティブ化前にのみ変更してください。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;

プロパティに戻る