URAMIRAIKAN

1020のなれの果て

インバウンド通信の帯域を制限する

 仕事でとある製品のパフォーマンス試験をすることになりましたので、その関連です。
 条件の一つにネットワークのスループット低下が及ぼす影響というのがあるのですが、検証環境だと十分に負荷をかけることができないため"tc"コマンドで制限をしようということになりました。
 しかし、"tc"はアウトバウンドの帯域制御は比較的容易なのですが、インバウンドにはちょっと工夫が要るようです。

 そんな感じで、ネットの情報を頼りに試験で使いやすいように適当なスクリプトを作ってみました。

 とりあえず条件としては制限の有効/無効を簡単にできること、引数で制限値と対象のインターフェースを変更できることです。
 今回の試験用なのであまり使い回すことは考えていないですが、その気になったらしっかり作り直すかもしれません。

#!/bin/bash SWITCH=$1 # "on" or "off" DEVICE=$2 # "eth0", "br0", etc. RATE=$3 # for example "1000m" if [ "$SWITCH" = "on" -o "$SWITCH" = "off" ]; then echo "--- Initialize $DEVICE and ifb0 ---" tc qdisc del dev $DEVICE ingress handle ffff: tc qdisc del dev ifb0 root handle 1: htb sleep 3 rmmod ifb else echo "Usage: $0 <on|off> <interface> <rate>" fi if [ "$SWITCH" = "on" ]; then echo "--- Load ifb module ---" sleep 3 modprobe ifb sleep 3 ip link set dev ifb0 up echo "--- Mirror $DEVICE to ifb0 ---" modprobe act_mirred sleep 3 tc qdisc add dev $DEVICE ingress handle ffff: tc filter add dev $DEVICE parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 echo "--- Traffic Shape ifb0 ---" tc qdisc add dev ifb0 root handle 1: htb default 10 tc class add dev ifb0 parent 1:1 classid 1:10 htb rate ${RATE}bit fi exit

 制限を有効にする場合は"./nwlimit.sh on eth0 1000m"のような感じで実行し、無効にする場合は"nwlimit.sh off"です。
 仕組みとしては"ifb"デバイスを挟むことで実現しているのですが、"ifb"の本来の役割とかは実はよく分かっていません。(この辺を読んで勉強しています。)

 というか、"tc"コマンドが複雑すぎてよく分かりません…。


    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (05/26-08:51)
RT @pisiinu: 小池知事は馬鹿なの?かぶるタイプの傘なんか釣具屋に行けば千円で買えるよ。 https://t.co/CwQZvaQr56 それを「試作しました!」って、車輪の再発明以下。釣りなんかの時くらいしか使えないくらい邪魔だから誰もかぶってないんだってば。傘の骨…
@umkn1020 (05/24-07:49)
RT @TsukasaTakki: 組織を壊す人材 ・口が悪い ・思いやりがない ・正論で殴る ・相手の価値観を認めない ・約束を守らない ・批判しかしない この辺りの人材が入ると 空気がめちゃくちゃ悪くなるので 面接時にめっちゃ見ます。 多様性は認めたいけど 前提には既…
@umkn1020 (05/24-07:45)
RT @G4_KokoroAKECHI: >どうせ変わらない >やらなきゃ何も変わらない 「キミも青いな。業務効率化したらプロパーの雇用が喪失するだろうが。それに協力会社にも仕事が回らなくなる。業界が縮小してしまうだろうが!」 さすが国内最大手のコンピュータ会社の事業部長で…
@umkn1020 (05/23-17:06)
RT @nanopicon: ゆで玉子が途中で割れたみたいで、なんか変な生き物になった… https://t.co/7p5zUGUiBh
@umkn1020 (05/23-16:45)
人の都合をなんだと思っているのか

エントリーリスト

カテゴリーリスト

タグ