まえがき
VirtualBoxでネットワーク帯域制限をやろうとしたが、素直なやり方じゃなかったのでメモ。
VirtualBoxの4.2以降から帯域制限できるようになっている。
やり方はヘルプの 6.10. Limiting bandwidth for network I/O
に記載されてる。
以下はヘルプの内容にちょっとだけ情報を追加したものになる。
VBoxManage
にパスを通す
VBoxManage
コマンドを使っていろいろ設定することになるが、
普通にインストールしただけじゃパスが通ってないのでパスを通す。
もしくは、VirtualBoxのbinフォルダに移動してコマンドを実行する。
帯域制限の設定を作る
VBoxManage bandwidthctl "VM name" add Limit --type network --limit 20m
上記コマンドでLimit
という名前の20Mbpsの帯域制限設定を作ったことになる。
このコマンドだけVMを停止している必要あり
帯域制限の設定をネットワークアダプタに割り当てる
VBoxManage modifyvm "VM name" --nicbandwidthgroup1 Limit
上記コマンドでアダプター1
に制限設定Limit
を割り当てたことになる
-> nicbandwidthgroup2
に変えるとアダプター2
への割り当てになる。
帯域制限の設定を変更する
VBoxManage bandwidthctl "VM name" set Limit --limit 100k
上記コマンドでLimit
の制限を100Kbpsに変えたことになる
また、VM実行中に設定変更が可能。
作成のコマンドと微妙にオプションが違うので注意
アダプターの帯域制限を無効化する
VBoxManage modifyvm "VM name" --nicbandwidthgroup1 none
上記コマンドでアダプター1
の帯域制限を無効化したことになる。
他のアダプターの制限は有効のまま。
帯域制限設定を無効化する
VBoxManage bandwidthctl "VM name" set Limit --limit 0
上記コマンドで帯域制限Limit
を無効化したことになる。
複数のアダプターに割り当てられていれば、それらすべての帯域制限が無効になる。
あとがき
VMWareだと画面から帯域制限をいろいろいじれたが、VirtualBoxだと上記のようにコマンドでいろいろやんないといけないのでちょっと面倒くさい。。。
また、データ受信側のNICに対して制限を掛けても効果がないので送信側に対して制限を掛ける必要がある。