cvs がもっさりしている(update やら checkout が始まるのに時間がかかる)
2ヶ月まえくらいから発生していた(らしい)
制限事項:
cvs のサーバには ssh ログインすることはできない
緊急ではなかったけど、放置しておくのもなんだかな、、と思ったので調べた。上記制限事項により、クライアント側からのみ、の調査に留まる。
方法:
tcpdump
wireshark
メモしてなかったけど、Mac OS X のターミナルでだいたい以下のように実行、、
$ sudo tcpdump -n -x -l -v -w ~/Desktop/cvs.tcpdump port 2401
しつつ、cvs checkoutやらupdate を実行して採取した。
ふむ、、、おそい。たしかにおそい。ためしに3回採取し、wireshark で解析。
するとすぐ目についたのが、
「26秒の待ち」。3回とも一様に待ちが発生している。
サーバには入れないので、これを手がかりに調査 & 社内のネットワークのプロに聞く。
すると、、某アプライアンス機器が弾いているという。
しかし26秒てなんだ、、と思って調べていると、 どうも ucspi-tcp パッケージ の tcpserver プログラム が怪しいことに気づく。
http://cr.yp.to/ucspi-tcp/tcpserver.html より
# -t n: Give up on the $TCPREMOTEINFO connection attempt after n seconds. Default: 26.
「タイムアウト」の時間が 26秒なので、タイムアウトする以前に、機能自体を無効にしてしまおう。もちろん -t 0 でもいいけど、、いらないだろう。どうも ident らしいし。
というわけで、ぼくは -HRDl0 が定番オプションだと思ってることもあるので
とりあえず tcpserver 経由の -R オプションつきで起動してなければつけてもらうことに。
ついててこの現象が起こることはないと思われる。
さてどうなるかな。
・・・・と、もし tcpdump, wireshark を使わない、という条件で調べることになったら、どうやるのがいいんだろう?とふと思った。クライアントからは困難か。
0 件のコメント:
コメントを投稿