クラスタのノード間での通信量を測定するための仕掛けを探していたら、実はiptablesでできることが判明。
こちらのサイトが元ネタ。
要するに、各ノードごとにチェインを用意してやればよい。チェインごとの統計をiptablesで取得できる。
まずクリアしておいて、
sudo iptables -F
sudo iptables -X
対象ノードごとに下記のようにルールを設定する。
sudo iptables -N host
sudo iptables -A OUTPUT -j host
sudo iptables -A INPUT -i eth0 -j host
sudo iptables -A host -d 172.16.96.1/32
sudo iptables -A host -s 172.16.96.1/32
すると、下記のように通信量を取得できる。左端に出ているのがパケット数とバイト数。
> sudo iptables -v -n -L host
Chain host (2 references)
pkts bytes target prot opt in out source destination
44 7068 all -- * * 0.0.0.0/0 172.16.96.1
74 5579 all -- * * 172.16.96.1 0.0.0.0/0
これらのカウンタは下記でリセットできる。
sudo iptables -Z
新しいものを入れる必要が無いので手軽といえば手軽だが、全部のノードに、ノード数分だけルール入れるの面倒くさい。。インターフェイスも2系統あったりするのでさらに。。
0 件のコメント:
コメントを投稿