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