Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windowsでネットワークファイル転送速度を制限する方法(QoS・PowerShell・Robocopy)

本記事では、Windows Server 2016やWindows 10におけるネットワークデータの送受信速度を、標準機能およびサードパーティ製ツールを使って制限する方法を解説します。Windowsのアプリケーションは、デフォルトでネットワークインターフェースの帯域幅を最大限に使用しようとします。そのため、特定のタスク(主にSMB共有フォルダへのアクセスなど)がネットワークアダプターの帯域を占有してしまい、他のアプリケーションに支障が出るケースがあります。共有フォルダからのファイルコピー速度に上限を設定すれば、他のアプリケーションに対してネットワークリソースを確実に確保できます。

TCP/IPネットワークでトラフィックのクラスや優先度を管理するには、QoS(Quality of Service)技術が使用されます。

WindowsでのQoSグループポリシーの設定

Windowsでは、QoSのグループポリシー設定を使ってトラフィックの優先度を管理できます。ここでは、すべての送信接続に対してデータ転送速度を制限する例を紹介します(ユーザーがサーバーからファイルをコピーする場合にもポリシーが適用されます)。この手法を応用すれば、任意のアプリケーション、ポート、ホスト/サイトごとに速度制限をかけることも可能です。

QoSグループポリシーがサポートされているOSは以下の通りです。

  • Windows Server 2008以降
  • Windows Vista以降

まず、ネットワークアダプターの設定で「QoSパケットスケジューラ」が有効になっていることを確認してください。

  1. ローカルグループポリシーエディター(gpedit.msc)を起動し、「コンピューターの構成」→「Windowsの設定」→「ポリシーベースのQoS」に移動して、「新しいポリシーを作成する」をクリックします。
  2. ポリシー名を指定し、「送信スロットル率を指定する」にチェックを入れて、スロットル率を設定します。これは送信トラフィックを制限したい速度(MBps/KBps)です。注意: DSCP値も設定できます。DSCP(Differentiated Services Code Point)は、CiscoやMikroTikなどの高度なルーターで利用できる機能で、パケットのDSCP値に応じてルーターが優先度を割り当てます。ルーターのDSCP QoS設定に自信がない場合は、このオプションは使用しないでください。
  3. 次に、ポリシーを適用するプロセス/アプリケーション(.exeファイル)またはIISのhttp(s)サイトを選択できます。ここでは「すべてのアプリケーション」を選択したままにしています。
  4. ポリシーを適用するIPインターフェースを指定することもできます。複数のネットワークアダプターやIPエイリアスがある場合に便利です。
  5. 宛先IPアドレスを指定して、その宛先への転送速度を制限することも可能です。
  6. 続いて、ポリシーを適用するプロトコル(TCP、UDP、またはTCPとUDPの両方)を指定します。ソースポートと宛先ポートも選択できます。アプリケーションがどのプロトコルを使用しているかわからない場合は「TCPとUDP」を選択してください。SMB共有フォルダへのアクセス速度を制限したい場合は、プロトコルをTCP、ポートを445に指定します。

これでWindowsのQoSポリシー設定は完了です。再起動は不要で、設定を適用するとすぐにネットワークのデータ転送速度が制御されます。なお、ポリシーエディター上では、設定時にMBを選択してもスロットル率はKB単位で表示される点に注意してください。

この例ではすべてのアプリケーションとすべてのポートを対象にしているため、ポリシーによりネットワークファイル転送の最大速度が3MBに制限されます(エクスプローラー「explorer.exe」によるファイルコピーも含まれます)。下のスクリーンショットのように、設定したQoSポリシーによってWindows上のファイル転送速度が実際に制限されていることが確認できます。

また、「コンピューターの構成」セクションでのみ利用可能な高度なQoSポリシーもあります。「受信TCPトラフィック」タブでは受信TCPトラフィックを制限できます(「DSCPマーキングの上書き」タブはDSCP設定に関するものなので、ここでは割愛します)。

トラフィック制限には4つのレベルがあり、各レベルと速度の対応は以下の表の通りです。

受信TCPスループットレベル最大転送速度
064 KB
1256 KB
21 MB
316 MB

PowerShellによるWindowsネットワークQoSポリシーの管理

PowerShellを使ってネットワークQoSポリシーを作成・管理することもできます。例えば、SMB(共有ファイル)トラフィックの帯域を制限するQoSポリシーを作成するには、次のコマンドを使用します。

New-NetQosPolicy -Name "SMBRestrictFileCopySpeed" -SMB -ThrottleRateActionBitsPerSecond 10MB

Name : SMBRestrictFileCopySpeed
Owner : Group Policy (Machine)
NetworkProfile : All
Precedence : 127
Template : SMB
JobObject :
ThrottleRate : 10.486 MBits/sec

コンピューターに適用されているQoSポリシーの一覧を表示するには、次のコマンドを実行します。

Get-NetQosPolicy

QoSポリシーの編集にはSet-NetQosPolicy、削除にはRemove-NetQosPolicyコマンドレットを使用します。

Remove-NetQosPolicy -Name SMBRestrictFileCopySpeed

Set-SmbBandwidthLimit:PowerShellでSMB帯域幅制限を設定する

Set-SmbBandwidthLimitコマンドレットを使用すると、SMBプロトコル経由のファイル転送速度を制限できます。まず、PowerShellでWindows Serverの機能「SMB帯域幅の制限」をインストールします。

Add-WindowsFeature -Name FS-SMBBW

または、グラフィカルなサーバーマネージャーからインストールすることもできます(「機能の追加」→「SMB帯域幅の制限」)。

このモジュールは通常、Hyper-Vライブマイグレーションの帯域幅制限を設定するために使用されます。例えば、次のコマンドは仮想マシンのマイグレーション速度の最大値を100MB/sに制限します。

Set-SmbBandwidthLimit -Category LiveMigration -BytesPerSecond 100MB

-Category Defaultパラメーターを使用すれば、SMB経由の一般的なファイル転送トラフィックを制限することもできます。

Set-SmbBandwidthLimit -Category Default -BytesPerSecond 10MB

なお、FS-SMBBWはWindows Server 2012 R2以降で利用可能です。

Robocopyでファイル転送の帯域幅を制限する

Robocopyを使用する場合も、特別なパラメーターでネットワーク経由のファイルコピーや移動の速度を制限できます。それが/ipg(Inter Packet Gap)です。このオプションはパケット間のギャップをミリ秒単位で設定し、低速回線でのファイルコピー時にネットワーク負荷を軽減するために使用されます。Robocopyは64KBブロック単位でデータを送信するため、回線の帯域幅がわかれば、必要な転送速度に基づいて適切な/ipg値を計算できます。

数式を扱いたくない場合は、既製のRobocopy IPG計算ツール(https://www.zeda.nl/index.php/en/robocopyipgcalculator-en-2)を利用するのもよいでしょう。

また、低速または不安定なネットワーク回線へのデータコピーにはBITSプロトコルを使用する方法もあります。BITSプロトコルは、回線の負荷状況に応じて2台のホスト間のデータ転送速度を動的に制御でき、ダウンロードの再開(レジューム)にも対応しています。

サードパーティ製ツールによるトラフィックシェーピング

Windowsでポート、アプリケーション、宛先に応じてスループットを制限する商用ソリューションとして最も人気があるのはNetLimiterです。無料ツールで最も人気があるのはTMeter Freeです。

その他にも以下のようなツールが挙げられます。

  1. GlassWire – ファイアウォールとネットワークモニター機能を搭載
  2. NetBalancer – ネットワーク監視とトラフィックルール設定
  3. cFosSpeed – アプリケーションごとのトラフィック優先度を設定可能
  4. Net Peeker – GlassWireと同様にファイアウォール機能を持ち、トラフィック優先度も設定可能

WindowsのQoSポリシーでもネットワークのデータ転送速度を十分に制限できるため、まずはQoSを試してみることをおすすめします。他のポリシーと同様、gpmc.mscコンソールを使えばドメインレベルで一括設定することも可能です。

サードパーティ製ソフトウェアはより多機能でグラフィカルなインターフェースを備えていますが、その多くは商用ライセンスが必要です。

  1. 【解決済み】Windows 10でUSB転送速度が遅い原因と高速化する5つの対処法

    USBメモリは、大量のデータを手軽かつスピーディーに転送できる最も便利なツールとして、今や幅広く普及しています。ほぼすべてのノートパソコン、デスクトップPC、タブレット、テレビにUSBポートが搭載されており、USBドライブの接続と使用はとても簡単です。しかし、USBフラッシュドライブの読み書き速度が極端に遅いと感じる場合は、USB転送速度を大幅に改善するための対策を講じる必要があります。 USB転送速度が変動する理由とは? 全体的な転送速度は、主に次の3つの要素によって決まります。 USBポートの転送速度 転送元デバイスの読み取り速度 転送先デバイスの書き込み速度 USB転送速度が変動する

  2. Windows 10でWi-Fi接続速度を確認する最良の方法|設定・コマンドプロンプト・PowerShellの手順を解説

    お使いのWindows PCのネットワークアダプターの通信速度が気になったことはありませんか?本記事では、その確認方法をいくつかご紹介します。そもそもネットワークアダプターとは、有線または無線(Wi-Fi)接続を通じてネットワークやインターネットに接続するために、PCに搭載されているコンポーネントのことです。 快適な作業環境を維持するためには、インターネット速度の診断が非常に重要です。より高速なプランへの乗り換えを検討している場合も、現在の回線速度を把握しておくことが欠かせません。Wi-Fiの接続速度を知ることで、契約している帯域幅を十分に活かせているかどうかを判断できます。 また、接続速度を