とある凡人の生きた軌跡

ただひたすらにありのままに生きる

WindowsServer 通信キャパ向上パラメータ

Windows Serverといえば「高い」「遅い」で有名だけど
Webで使ってて有益っぽい情報を手に入れたので備忘として記載する事にする

[遅い問題]

TCP接続で、TIME_WAITとなったTCPコネクションを完全にクローズ→再利用するための待機時間が長い

主にhttpが多いwebに顕著に出る症状だけど、用事が終わった後に次のリクエストに使うまでに2分間も待機しているので充填にすごく時間がかかっている。これは非常にもったいない。大量アクセスのサービスなんかだと1台あたりの仕事量が少ないと サーバ金額がひどい事になるのでなんとかしたい。

[ポート枯渇問題]

TCPのTIME_WAITよりもこっちのほうが問題としては早く訪れそうな気がする。そもそも65535あるポートのうち使える数がぐっと抑えられておりWindowsServer自体が本気を出せてない状態っぽい。ポートをギリギリまで使いたおす事でこちらもサーバ1台あたりの仕事量を 増やす事でサーバ費用の削減をすべき問題。

ひと目でわかるWindows Server 2012 R2

ひと目でわかるWindows Server 2012 R2

[解決策]

レジストリがっつり修正

パス :  HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
名前 : TcpTimedWaitDelay
型 : REG_DWORD(32ビット)
既定値 :        120 秒
設定可能範囲 :  30 ~ 300 秒
パス :  HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
名前 : MaxUserPort
型 : REG_DWORD(32ビット)
既定値 :        16383(少なすぎ!!)
設定可能範囲 :  65534

Windows Server 2008以降はコマンドでもよい

// 開始ポート1025, 65535までを使う。という場合
// 要管理者権限
$ netsh int ipv4 set dynamic tcp start=1025 num=64510

Windows Serverの年式によって多少はデフォルトのパラメータが変わると思われるが 基本的にはWebサーバだと思いっきりclient側のために働かせるためパラメータの調整は必須と思われる。