ネットワークチューニングの 1ついえば、TCP遅延ACK や Nagle ですね。
Windows ではどちらの設定も「レジストリを操作して再起動する」ことで調整可能です。
じゃぁ実際どうやって操作するか?TCP遅延Ackを操作するサンプルを紹介しましょう。
目次
レジストリ操作
PowerShell は、 Registry::
とすることで、各種レジストリキーにアクセスできます。
レジストリツリー(ハイブ)は Get-ChildItem
で取得でき、キーのの状態は Get-ItemProperty
で取得できます。
さらに、Set-ItemPropery
で任意のキーに任意の値をセットできます。
ここまで書けばイメージできる通り、ファイル操作と同様にレジストリ操作が可能です。PSプロバイダに隠ぺいされた、異なるプロバイダへの容易なアクセスがPowerShellで操作する最大のメリットです。
TCP遅延Ack のレジストリ
書いてある通りです。
サブキー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Interface GUID> エントリ : TcpAckFrequency 値の種類 : REG_DWORD、数値 有効な範囲 : 0 ~ 255 デフォルト値 : 2 無効にする値 : 1
ということで、書きます。
コード
ちょっとだけ説明
ネットワークインターフェースそれぞれにキーを設定する必要があるのですが、AddressType
から設定すべきネットワークアダプタが特定できます。
あとは、有効、無効を bool
から INT
(DWORD に変換して判定するだけです。
まとめ
操作をする以上、冪等性って大事ですよね。状態を持たないように書くと比較的楽に書けるように思います。PowerShell にはパイプラインがあるので、これを使うのが楽でしょう。
ちなみに DSC で書くともっと楽です。興味のある人はぜひ考えてみてください。