元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2013/02/01

なぜかJenkinsを起動させたらパケットロスが多発しまくったのを無理やり直した話


※ まず、はじめに、僕があまりJenkins自体の挙動に詳しくないので、誰か正しい直し方をご存知の方がいらっしゃったら、教えてほしいです。


本題。これは明らかな環境依存下(特にネットワークまわり)での話なのですが、KVM上でのLinux(CentOS 5/6系)な環境で、Jenkinsを起動するとパケットロスが多発して全然使い物にならないケースがありました。

(Jenkinsを落とすと普通に復旧しちゃうんですよね。。。)


で、こんな感じで若手が苦しんでいたので、ちょっとOS上で色々と調べていたのですが、どうもtcpdumpを眺めていると、

11:31:14.427406 IP xxx.xxx.40.102 > 239.77.124.213: igmp v2 report 239.77.124.213
11:31:17.905397 IP xxx.xxx.40.102 > 239.77.124.213: igmp v2 report 239.77.124.213

このパケットが発射された直後に、パケロスが発生することがある、ということがわかりました。パケロスする期間は様々で、一瞬のときもあれば10秒くらい返ってこないことも・・・。

$ ping xxx.xxx.40.102
PING xxx.xxx.40.102 (xxx.xxx.40.102) 56(84) bytes of data.
64 bytes from xxx.xxx.40.102: icmp_req=1 ttl=57 time=6.27 ms
64 bytes from xxx.xxx.40.102: icmp_req=2 ttl=57 time=1.19 ms
64 bytes from xxx.xxx.40.102: icmp_req=3 ttl=57 time=2.78 ms
64 bytes from xxx.xxx.40.102: icmp_req=5 ttl=57 time=3.70 ms
64 bytes from xxx.xxx.40.102: icmp_req=6 ttl=57 time=2.23 ms
64 bytes from xxx.xxx.40.102: icmp_req=10 ttl=57 time=2.14 ms

こういう感じでパケロスが。。。


で、僕がJenkinsの挙動や機能をわかっていなさすぎて、なんでこんなマルチキャストパケットを送ってるかってところなのですが、JenkinsにAuto-discoveringなる機能があって、IGMPなパケット(UDP multicast packet)を放っているとな。


今回は、特に複数台でクラスタを組んでいるわけでもないので、上記だけだったら特に機能しなくても問題なさそうなので、該当パケットを破棄(drop)してやることにしてみた。

(本当は、Auto-discoveringとやらを設定で切れるなら、そうしたいんですが、jenkins力が低すぎてよくわからなかった...w ま、UDP multicastだから、破棄しても問題ないかと思いまして。)


というわけで、力技ですが、iptablesを有効に(起動)して、

# iptables -A OUTPUT -d 239.77.124.213 -p igmp -j DROP

こんな感じで流し込んだところ、問題は再発しなくなりました。


一応、これでjenkinsが使えるようにはなるのですが、そもそも何故この環境だけパケロスが発生するのかっていう根本原因と、↑の設定を入れることによる副作用(僕のjenkins力の問題)がわかっていません・・・w


という具合に、いったんメモ程度な感じでこのエントリに残しておきます。

それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20130201/p1

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)