ユーザ用ツール

サイト用ツール


このページの翻訳:



最近の更新



Tag Cloud

01_linux:01_net:tcで帯域制限

tcで帯域制限

発信帯域を制限できる。

NICのスピード変更(ethtool)では、NIC自体のスピードを変更できる。

10Mに制限

bitで指定

tc qdisc add dev eth0 root tbf limit 15Kb buffer 10Kb/8 rate 10Mbit

確認コマンド

tc qdisc show
qdisc tbf 8002: dev eth0 rate 50000Kbit burst 10Kb lat 819us

制限を削除

tc qdisc delete dev eth0 root tbf

bpsでも指定できる。

tc qdisc add dev eth0 root tbf limit 15Kb buffer 10Kb/8 rate 10Mbps
tc qdisc show
qdisc tbf 8004: dev eth0 rate 80000Kbit burst 10Kb lat 512us 

30MBitに変更制限する場合

tc qdisc change dev rkm5w03y7gq3pv root tbf rate 30mbit latency 50ms burst 1mb

[root@hv9142 ~]# tc qdisc | grep rkm5w03y7gq3pv
qdisc tbf 8018: dev rkm5w03y7gq3pv rate 30000Kbit burst 1024Kb lat 50.0ms

検証

tc は/proc/net/devで見た時のTransmit(アウトバウンド)にしかかからない。
※HV上から仮想インターフェースにtcを書ける場合、仮想インターフェースのTransmit(VMからみるとインバウンド)にかけることになる。

参考サイト

普通のサーバ

何も制限をかけてない場合

# i=bond0
# while : ; do _T1=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); \
> sleep 1; _T2=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); \
> echo "$(expr \( \( $_T2 - $_T1 \) \* 8 \) \/ 1024 ) kbps"; done
14 kbps
5 kbps
47177 kbps
204251 kbps
204287 kbps
204298 kbps
204369 kbps
204417 kbps
138687 kbps

10Mbpsで制限をかけた場合

# tc qdisc add dev bond0 root tbf rate 10mbit latency 50ms burst 1mb mtu 33000
# tc qdisc | grep bond0
qdisc tbf 800a: dev bond0 rate 10000Kbit burst 1024Kb lat 50.0ms 

# i=bond0
# while : ; do _T1=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); sleep 1; _T2=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); echo "$(expr \( \( $_T2 - $_T1 \) \* 8 \) \/ 1024 ) kbps"; done
11572 kbps
11590 kbps
11579 kbps
11566 kbps
11578 kbps
11566 kbps
11566 kbps

仮想VM(HV上から仮想インターフェースへかける)

制限なし

# i=nxiort3mfzk3mq
# while : ; do _T1=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); sleep 1; _T2=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); echo "$(expr \( \( $_T2 - $_T1 \) \* 8 \) \/ 1024 ) kbps"; done
98837 kbps
98661 kbps
98789 kbps
98711 kbps
98765 kbps
98666 kbps
98790 kbps
98779 kbps
98708 kbps
98803 kbps
98660 kbps

1Mに制限した場合

tc qdisc change dev nxiort3mfzk3mq root tbf rate 100mbit latency 50ms burst 1mb mtu 33000

# i=nxiort3mfzk3mq
# while : ; do _T1=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); sleep 1; _T2=$( grep $i: /proc/net/dev | cut -d: -f 2|awk '{print $9}'); echo "$(expr \( \( $_T2 - $_T1 \) \* 8 \) \/ 1024 ) kbps"; done
1157 kbps
1157 kbps
1157 kbps
1157 kbps
1157 kbps
1157 kbps
1162 kbps
01_linux/01_net/tcで帯域制限.txt · 最終更新: 2016/07/08 10:04 by matsui