SSL-VPNであるSWANStorの基本はWebアクセス(HTTP)ですが、このためご利用のシステムのTCPの設定によって見かけ上の応答速度などが変化することがあります。
ここでは弊社運用のサーバで設定している値などを参考値として提示させていただきます。
注:Windowsではレジストリを編集します。誤った設定を行うとシステムが不安定になったり起動しなくなったりします。設定については自己責任でお願いします。
1)TCPのKeepaliveタイマーの設定
TCP はその通信が終了(TCP FIN を送った、または受け取った)場合でも設定された待ち時間だけそのリソースを保持し続けます。
これはアプリケーションが TCP の受信バッファからデータを受け取り切るまでの調整時間なのですが、OSをデフォルトでインストールした状態の設定値は必要以上に長く(デフォルトで7200 秒)、SWANStor サーバのように複数のセッションを処理するサーバシステムでは、TCP リソースが消費し続け不足する場合が
あります。
また、Webアプリによってはブラウザ側でデータを受信しきっても、しばらく待ってタイムアウトするかTCPが切断されてから受信したデータを表示する場合があり、TCPセッションが何回も分断されているSWANStorシステムのような場合では、見かけ上応答が遅く見えることがあります。
このような状況に対して、必要のなくなったTCPセッション(CLOSE_WAITの状態にあるものなど)をできるだけ速やかに解放することで改善できる場合があります。
設定方法:
Windowsの場合
レジストリエディタを起動し、次のレジストリキーを新規作成するか、既存のキー値を変更します。変更後はWindowsシステムを再起動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersに
名前 | タイプ | 値 |
KeepAliveTime | REG_DWORD | 3000(0xbb8) |
KeepAliveInterval | REG_DWORD | 10000(0x2710) |
TCPTimedWaitDelay | REG_DWORD | 30(0x1e) |
Linuxの場合
sysctlコマンドで次の値を設定します。
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 3
2)TCPセグメンテーションオフロードの無効化
Linux を仮想マシン環境下で動作させる場合には、インタフェース自身が実ハードウエアではないため、TCP セグメンテーションオフロードが有効だと通信パフォーマンスに影響を及ぼす場合があります。
TCP セグメンテーションオフロードとは、分割されて送られてくるTCP パケットの組み立てや順序制御をハードウエアで実行する仕組みです。
以下のコマンドで TCP セグメンテーションオフロードを無効化するとともに、/etc/rc.d/rc.local にも追記して、システム再起動時自動的に反映されるようにします。
#/sbin/ethtool -K eth0 rx off tx off tso of
Windowsでも同様の問題が報告されています。Windows の場合のTCPセグメンテーションオフロードの無効化の手順は次の通りです。
「ネットワークと共有センター」などからアダプタのプロパティ画面を開きます。