WindowsサーバーやWindows 10マシンがネットワーク経由で消費または送信するデータ量を制限しようとしているなら、それはあなただけではありません。Windowsはデフォルトでかなり全力で動作します。アプリやバックグラウンドプロセスが利用可能な帯域幅をすべて使い果たし、他のアプリにチャンスを与えない場合があります。複数のユーザーがいる場合や、他の重要なタスクがある場合は、これは好ましくありません。幸いなことに、制限を設定したり、少なくとも優先順位を少し適切に設定したりするための組み込みの方法があります。このガイドでは、実際に機能するいくつかの方法を詳しく説明します。これにより、特にファイルのコピーやバックアップ中に、1つの重いアプリがすべてを占有するのを防ぐことができます。グループポリシー、PowerShell、SMB設定、さらにはサードパーティ製のオプションも活用してください。最終的な目標は?ネットワークパフォーマンスをより予測可能にし、「なぜこんなに遅いの?」という瞬間を回避できるようになるでしょう。
Windows Server と Windows 10 におけるネットワーク帯域幅の浪費を修正する方法
Windows での QoS グループポリシーの構成
これは、グループポリシー経由でWindows QoS設定を使用するという、いわば典型的な方法です。基本的に、特定のアプリ、ポート、またはIPアドレスに帯域幅の一部を割り当てることができます。Windows Vista/Server 2008から導入されているため、ほとんどの環境で十分に信頼できます。
- [実行] または [スタート] メニューからgpedit.mscを開きます。
- 「コンピューターの構成」>「Windows の設定」>「ポリシーベースの QoS」に移動します。右クリックして「新しいポリシーの作成」を選択します。
- ポリシーに名前を付け、「送信スロットルレートを指定する」にチェックを入れます。ここで速度制限を設定します。注意:KB/秒単位なので、3MB/秒は3072KB/秒となります。
- プロセス( など
explorer.exe)やポートを選択するか、すべてのアプリケーションに設定してください。SMBの場合は、ポート445、プロトコルはTCPを使用してください。 - 必要に応じて、宛先IP範囲またはインターフェースを設定します(より高度な設定)。[OK]をクリックするとポリシーが有効になります。再起動は不要です。保存して閉じるだけです。マシンによっては、有効になるまでに1分ほどかかる場合や、すぐに再起動が必要になる場合があります。
なぜこれが役立つのか?Windowsが設定に基づいて選択されたトラフィックを調整するため、特定のアプリがネットワークを独占するのを防ぐことができます。バックアップや大容量ファイルの転送が他のすべての処理速度を低下させるのを防ぐのに効果的です。「すべてのアプリケーション」に設定すると、大容量ファイルのコピーが全体的に遅くなる可能性があります。これはトレードオフとなる場合もありますが、パフォーマンスの予測精度は向上します。
PowerShell による Windows ネットワーク QoS ポリシーの管理
コマンドラインに慣れている方は、PowerShell を使えば QoS ポリシーの作成や変更がかなり簡単に行えます。PowerShell は高速で、GPO UI を細かく操作する手間も省けます。
- PowerShell を管理者として開きます。
- たとえば、SMB トラフィックを 10 MB/秒に制限する QoS ポリシーを作成します。
New-NetQosPolicy -Name "SMBRestrictFileCopySpeed" -SMB -ThrottleRateActionBitsPerSecond 80MB - アクティブなポリシーを確認するには、以下を実行します
Get-NetQosPolicy。設定した内容を忘れた場合や確認したい場合に便利です。 - 必要に応じて、
Remove-NetQosPolicy -Name "SMBRestrictFileCopySpeed"またはを使用してポリシーを削除または変更しますSet-NetQosPolicy。
なぜわざわざ?再起動せずにポリシーを素早く調整でき、スクリプト化して自動化や迅速な修正に活用できるからです。Windowsではすべてを手動で行う必要があるように感じることもありますが、PowerShellならよりクリーンな操作が可能です。環境によっては、netsh interface tcp set global autotuninglevel=disabledTCPウィンドウスケーリングによって奇妙な問題が発生する場合などに実行する必要があるかもしれませんが、それはまた別の話です。
SMB スロットリングに Set-SmbBandwidthLimit を使用する
こちらはもう少し細かい設定になります。Hyper-V や SMB の設定に精通していて、SMB トラフィックにハードリミットを設定したい場合は、これが役に立ちます。SMB 帯域幅制限機能がインストールされていることを確認してください(ほとんどの Windows Server エディションにはこの機能が付属しています)。
- 機能をインストールするには、次の操作を行います
Add-WindowsFeature -Name FS-SMBBW。または、サーバー マネージャー > 役割と機能の追加 を使用します。 - PowerShell を使用して制限を設定します。例:ライブマイグレーションの制限を 100MB/秒に設定するには、 を実行します
Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB。通常のファイル共有の場合は、 を使用しますSet-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB。
この方法はWindows Server 2012 R2以降で安定しています。理由は定かではありませんが、主に仮想化シナリオで使用されますが、通常のファイルスループット制限でも問題なく動作します。
Robocopy でのファイル転送帯域幅の調整
Robocopyを使ってネットワーク経由でファイルをコピーする場合、/IPGパラメータ(Inter Packet Gap)を使って意図的に速度を落とす組み込みの方法があります。これは基本的に、大きな転送中にネットワークに時間差を与えることで遅延を挿入するものです。
- 値はミリ秒単位です。例えば、速度を約5MB/秒に制限したい場合は、/IPGの値を50~100程度に設定してみてください。Robocopyは64KBのブロックを転送するため、/IPGのタイミング調整は難しい場合があります。
- 大まかな数式や、この Robocopy IPG 計算機のような計算機を使用すると、処理を高速化できます。
注:接続が不安定または制限されている場合は、BITSプロトコル(バックグラウンド・インテリジェント転送サービス)を使用して、転送速度を制限し、再開可能な転送を行うこともできます。不安定なリンク経由で大容量ファイルを転送する場合に便利です。詳細は他のドキュメントに記載されていますが、知っておく価値はあります。
サードパーティツールによるトラフィックシェーピング
Windowsツールが使いにくかったり信頼性に欠けたりする、あるいはインターフェースのコントロールがもっと必要だと感じる場合は、 NetLimiterやTMeter Freeといったサードパーティ製アプリが役立ちます。これらのアプリを使えば、アプリケーションごとの制限設定やスケジュール制限の設定、さらには使用状況のモニタリングも可能です。
- その他のオプションとしては、Glasswire(ファイアウォール+ネットワークモニター)、NetBalancer(トラフィックルール)、cFosSpeed(トラフィック優先順位付け)などがあります。これらは主に有料オプションですが、ネイティブツールよりも高度な制御が可能です。
もちろん、Windows QoSポリシーはほとんどのシナリオで十分であり、無料です。しかし、きめ細かな制御を重視するなら、これらのツールは投資する価値があるかもしれません。ただし、これらのツールは使いこなすのに時間がかかる場合があり、WindowsのアップデートやVPNとの相性が悪くなる場合があることを覚えておいてください。状況によって異なる場合があります。
まとめ
基本的に、Windowsでネットワーク帯域幅を制限する方法はいくつかあります。組み込みのQoSポリシー(正しく設定すれば問題なく機能します)、PowerShellコマンドを使った簡単な調整、SMB固有の制限、より詳細な制御のためのサードパーティ製ツールなど、多岐にわたります。これは一種のバランス感覚であり、自分の快適レベルとニーズに合ったものを選ぶ必要があります。通常はQoS設定で十分ですが、サードパーティ製アプリを使うとさらに楽になる場合もあります。
まとめ
- 追加のソフトウェアなしで広範な制御を行うには、グループ ポリシー QoSを試してください。
- 簡単な調整やスクリプト作成にはPowerShellを使用します。
- SMB トラフィックが主な懸念事項である場合は、SMB 帯域幅制限を構成します。
- 低速ネットワーク上で制御されたファイルのコピーを行うには、Robocopy の /IPGを活用します。
- ネイティブ オプションが不十分であったり複雑すぎる場合は、サードパーティ ツールを検討してください。
結論
多くの場合、QoSポリシーの設定やSMB制限の調整で解決できます。これらの設定は、すべてのトラフィックを完全に制限することなく、ネットワークの安定性を維持するのに役立ちます。特定のアプリやプロトコルを扱う場合は、それに応じてポリシーを調整してください。特に複数のユーザーが関与している場合、全体的な予測可能性が高まります。「なぜすべてがクロールされているのか?」という状況を回避するのに役立つことを願っています。ほんの少しの調整が、後々大きな問題を防ぐこともあります。