From takepan @ gmail.com Tue Jun 28 10:06:52 2011 From: takepan @ gmail.com (takepan @ gmail.com) Date: Tue, 28 Jun 2011 10:06:52 +0900 Subject: [Ultramonkey-l7-users 413] Re: =?iso-2022-jp?b?RmFpbGVkIHRvIGFkZCB2aXJ0dWFsIHNlcnZpY2UgdG8g?= =?iso-2022-jp?b?bDd2c2QgGyRCJSglaSE8JEskRCQkJEYbKEI=?= In-Reply-To: <4E085D45.7060308@nttcom.co.jp> References: <20110627152420.CA77.BEDBFD42@gmail.com> <4E085D45.7060308@nttcom.co.jp> Message-ID: <20110628100649.CA94.BEDBFD42@gmail.com> 雲雀様  ご回答ありがとうございます。 > もし差し支えなければ、/etc/l7vs/l7vs.cfの設定を > お見せ願えないでしょうか?  上記についてですが、デフォルトの設定のまま、変更して おりません。 (ultramonkeyl7-3.0.1.tar.gzをダウンロード・解凍・インストールした  ままです)  session_thread_pool_size は、32です。  以下、手動で追加した結果です。 ------------------------------------------------- ■2IP分まで普通に追加できます # l7vsadm -A -t g.g.g.1:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 # l7vsadm -A -t g.g.g.1:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 # l7vsadm -A -t g.g.g.2:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 # l7vsadm -A -t g.g.g.2:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 ■3IP目でエラー # l7vsadm -A -t g.g.g.3:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. # l7vsadm -A -t g.g.g.3:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. ■時間を置いて再度やってもエラー # l7vsadm -A -t g.g.g.3:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. # l7vsadm -A -t g.g.g.3:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. ■設定済のものを1つ削除 # l7vsadm -D -t g.g.g.2:80 -m sessionless # l7vsadm -D -t g.g.g.2:443 -m sessionless ■3IP目の追加ができる # l7vsadm -A -t g.g.g.3:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 # l7vsadm -A -t g.g.g.3:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 ■さきほど削除したものを追加しようとしてエラー # l7vsadm -A -t g.g.g.2:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. # l7vsadm -A -t g.g.g.2:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 add vs error : error, create session. ■1IP目を削除 # l7vsadm -D -t g.g.g.1:80 -m sessionless # l7vsadm -D -t g.g.g.1:443 -m sessionless ■2IP目が追加できる # l7vsadm -A -t g.g.g.2:80 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 # l7vsadm -A -t g.g.g.2:443 -m sessionless --forwarded-for -s rr -u 0 -b 0.0.0.0:0 -Q 0 -q 0 -------------------------------------------------  この後、80番のみ登録してから443番追加、またその逆もやってみましたが、 片方の3IP分を追加した後、もう一方の2つ目のIPを追加したところで、 同様のエラーになります。4つまでしか登録ができない感じです。 > # lsof -i:80 > # lsof -i:443  上記については、l7vsd、l7directordが起動していない状態では、 何も返ってきません。起動した状態だと、 ------------------------------------------------- # lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME l7vsd 2804 root 19u IPv4 803464 TCP HOST1:http (LISTEN) l7vsd 2804 root 215u IPv4 803672 TCP HOST2:http (LISTEN) l7vsd 2804 root 411u IPv4 803880 TCP HOST3:http (LISTEN) # lsof -i:443 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME l7vsd 2804 root 607u IPv4 804088 TCP HOST1:https (LISTEN) -------------------------------------------------  上記のような応答が返ってきます。  よろしくお願いいたします。 On Mon, 27 Jun 2011 19:36:53 +0900 雲雀 路朗 wrote: > 竹内様 > > 設定ファイルを拝見させていただきましたが、 > 特に問題のある設定等は見当たりませんでした。 > > もし差し支えなければ、/etc/l7vs/l7vs.cfの設定を > お見せ願えないでしょうか? > もし、設定値等を公開するのが難しい場合は、ひとまず > "session_thread_pool_size"の設定値をお教え願います。 > > また、切り分けのため以下の手順を試していただけますでしょうか。 > 今回、l7directordでVirtualServiceの追加に失敗しているため、l7directord経 > 由ではなく > 手動でもVirtualServiceの追加に失敗するかを試していただければと思います。 > > # /etc/init.d/l7vsd stop > # /etc/init.d/l7directord stop > # /etc/init.d/l7vsd start > # l7vsadm -A -t g.g.g.1:80 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > # l7vsadm -A -t g.g.g.1:443 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > # l7vsadm -A -t g.g.g.2:80 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > # l7vsadm -A -t g.g.g.2:443 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > # l7vsadm -A -t g.g.g.3:80 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > # l7vsadm -A -t g.g.g.3:443 -m sessionless --forwarded-for -s rr -u 0 -b > 0.0.0.0:0 -Q 0 -q 0 > > また、念のため、g.g.g.1〜3で > # lsof -i:80 > # lsof -i:443 > 等で、80番ポートと443ポートが他のプロセスに使われていないかご確認願います。 > > 以上、よろしくお願いいたします。 From takebayashi.shinya @ oss.ntt.co.jp Tue Jun 28 10:07:54 2011 From: takebayashi.shinya @ oss.ntt.co.jp (Shinya TAKEBAYASHI) Date: Tue, 28 Jun 2011 10:07:54 +0900 Subject: [Ultramonkey-l7-users 414] Re: =?iso-2022-jp?b?RmFpbGVkIHRvIGFkZCB2aXJ0dWFsIHNlcnZpY2UgdG8g?= =?iso-2022-jp?b?bDd2c2QgGyRCJSglaSE8JEskRCQkJEYbKEI=?= In-Reply-To: <20110627194449.CA89.BEDBFD42@gmail.com> References: <20110627103029.CA66.BEDBFD42@gmail.com> <20110627194449.CA89.BEDBFD42@gmail.com> Message-ID: 竹林です. セションプールが初期化できなかったことが原因で,エラーが発生している模様です. l7vsd/src/virtualservice_tcp.cpp:755 からの try ブロック内の ・tcp_session のコンストラクタ ・tcp_session::initialize() ・session_thread_control のコンストラクタ のいずれかの処理で例外が発生しています. # 例外を捕捉している部分でログメッセージが出力されているため 竹林はしばらく時間がとれないためすぐに解析できない状況ですが, どなたかいけそうな方,いらっしゃいますか. takepan @ gmail.com wrote in message <20110627194449.CA89.BEDBFD42 @ gmail.com> *** Subject: [Ultramonkey-l7-users 412] Re: Failed to add virtual service to l7vsd エラーについて *** Date: 2011/06/27 19:44:52 > 竹林様 > >  回答ありがとうございます。竹内です。 > >  l7vsd.logのログは、下記になります。 > > ------------------------------------------------- > 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 > 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 > 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 > 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 > 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 > 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 > ------------------------------------------------- > 2011/06/27 19:32:16 [WARN] l7vsd_virtualservice VSD30700024 virtual service > not found. HOSTNAME 0xb7f92710 l7vsd.cpp:391 > 2011/06/27 19:32:16 [WARN] l7vsd_virtualservice VSD30700024 virtual service not found. HOSTNAME 0xb7f92710 l7vsd.cpp:391 > 2011/06/27 19:32:26 [FATAL] l7vsd_virtualservice VSD50700001 error, create session. HOSTNAME 0xb7ef4710 virtualservice_tcp.cpp:786 > 2011/06/27 19:32:26 [FATAL] l7vsd_virtualservice VSD50700001 error, create session. HOSTNAME 0xb7ef4710 virtualservice_tcp.cpp:786 > ------------------------------------------------- > >  よろしくお願いいたします。 > > > > On Mon, 27 Jun 2011 19:23:43 +0900 > Shinya TAKEBAYASHI wrote: > > > 竹林です. > > > > > > l7vsd のログファイルをいただけますか. > > > > l7directord 内で l7vsd コマンドをキックした際,エラーが出ています. > > 戻り値が 65280 = 1111 1111 0000 0000 なので,システムコール系関数が > > 失敗している可能性が高いと考えます. > > > > /var/log/l7vsd.log などの名前で存在していると思いますので, > > IP アドレス等はマスクした形で結構ですので,ご提示頂けると解析が進みます. > > _______________________________________________ > Ultramonkey-l7-users mailing list > Ultramonkey-l7-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users ----------------------------------------------------------- 日本電信電話株式会社 研究企画部門 OSS センタ OSS 推進ユニット 適用支援グループ 竹林 信哉(たけばやし しんや) TEL: 03-5860-5035 (直通 5044) E-mail: takebayashi.shinya @ oss.ntt.co.jp GPG ID: 395EFCE8 GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 ----------------------------------------------------------- From tatenaga @ gmail.com Tue Jun 28 13:41:55 2011 From: tatenaga @ gmail.com (yosuke takadate) Date: Tue, 28 Jun 2011 13:41:55 +0900 Subject: [Ultramonkey-l7-users 415] Re: =?iso-2022-jp?b?bDd2c2QbJEIkRxsoQkVTVEFCTElTSEVEGyRCJTMbKEI=?= =?iso-2022-jp?b?GyRCJU0lLyU3JWclcyQsO0QkQyRGJDckXiQmGyhC?= In-Reply-To: References: Message-ID: 高舘と申します。 だいぶ過去の話になりますが、l7vsdで ESTABLISHEDコネクションが残ってしまう、という件がありました。 自分の環境でも、クライアントからl7vsd接続後にLANケーブルを抜くと 再現する事がわかっております。 この問題ですが、setsockoptでKeepAliveを有効にし、 切断を検知するようにconn.cを改修すれば対応可能ではないでしょうか? 実装上、上記の対応による弊害など考えられますでしょうか? 使用しているバージョンは「2.1.3」となります。 よろしくお願いします。 2011年6月28日13:00 Takadate, Yosuke : > 中居様 > > > 三浦です。 > >> kernelのTCPスタックを利用しています、というのが一番正しいでしょうか。 > 丁寧に教えていただき有難うございます。 > 理解できました。 > >> コネクションに関してですが全くパケットが流れていませんか? > > 残り続けているコネクションについては何も流れてないです。 > >> realserver側のコネクションは増えていないんですよね? >> そうすると、realserverがapacheの場合にKeepAliveがOFFの時、 >> データを送り返した場合にFINを発行して回線を切断します。 >> UltraMonkey-L7では回線を切断した場合には対抗側のclient側の >> 回線も切断するシーケンスにいきますが、内部にデータが残っているときには >> このデータをclient側に送信してから回線を切断いたします。 > > realserver側は増えてないですが、l7vsd側をnetstatコマンドで見るとVIPとrealserver > 間でもコネクションが張りっぱなし(表示上は)です。 > > >> 1) realserver側で切断したシーケンスがうまくclient側に通知されていない。 >> = client側がshutdownシーケンスに入っていない >> 2) client側にFINを送っても呼応がない > > > 今回の現象を再現する為に下記のツールを使用しました。 > テスト用コネクションを張った後にクライアントPCのLANケーブルを抜き、 > パケットが届かない状態でツールを終了させ再現しています。 > (この方法で残るコネクションが実環境で起きている問題に非常に近いです) > > http://keicode.com/iis/timeout_test_tool.php > > > 上記方法を実施する際にクライアント、サーバ側でdumpしてるんですが > 残ったコネクションには何も流れてない(こない)ですね。 > > > よろしくお願いします。 > > 2009年11月27日14:54 中居憲久 : > >> 三浦様 >> 中居です。 >> >> >> > > この値が存在するためにultramonkey自体は使用していないソケットのガベージ >> > > をしていません。 >> > プログラムの知識が乏しいため的外れな質問であれば >> > 大変申し訳ないのですが、ソケット自体はultramonkeyが >> > kernelにオープンさせ、その後の切断処理については >> > kernel側で判断しているという認識で良いのでしょうか。 >> >> kernelのTCPスタックを利用しています、というのが一番正しいでしょうか。 >> ロストしたパケットや回線の切断検知などはUltraMonkeyで行っていません。 >> ClientやRealServerが明示的にFINを送ってきてkernelが終了処理を行ったうえで、 >> UltamonkeyにそのsocketがHUNGUPという形で伝わります。 >> >> 元々TCPのソケットはプログラム上からみた場合にはストリームですから >> 内部のデータの開始やリトライなどはkernelが隠蔽します。 >> >> >> > だとすると私の環境でコネクションがいつまでも切れないのは >> > OS側に問題が有る可能性が強いということですかね。 >> > (OSはCentOS5.4 64bit版を使用しています) >> >> こちらも自宅ではCentOS5.3の64bit版(ただしkernelは入れ替えてありますが)です。 >> ちょっとこのあたりはOSと限定することもできないんですけれど。 >> (途中にL3スイッチなどがいても影響を受けます)。 >> >> > > 1) OSでパケットロストした場合のリトライ回数を減らす >> > 減らして試してみたのですが、効果が見られませんでした。 >> > 昨日より試験的に残したコネクションも未だ切れずにいます。 >> > (16時間くらい経過しています) >> >> コネクションに関してですが全くパケットが流れていませんか? >> >> > > 2) max_eventsの値を大きくする >> > l7vs.cfのmax_eventsパラメータと同一ということで >> > 認識は合っていますでしょうか。 >> > 以前に3倍程度まで引き上げてみたのですが、 >> > 結果としては最大値まで達する日数が伸びた程度で >> > 改善には至りませんでした。 >> > >> > 現状では一度コネクションが残ってしまうと確認できてる >> > 範囲では1週間以上残ってしまっています。 >> > (切れずに上限まで達するので強制再起動で対処) >> >> realserver側のコネクションは増えていないんですよね? >> そうすると、realserverがapacheの場合にKeepAliveがOFFの時、 >> データを送り返した場合にFINを発行して回線を切断します。 >> UltraMonkey-L7では回線を切断した場合には対抗側のclient側の >> 回線も切断するシーケンスにいきますが、内部にデータが残っているときには >> このデータをclient側に送信してから回線を切断いたします。 >> >> こちらでは上記症状が出ていませんので、 >> >> 1) realserver側で切断したシーケンスがうまくclient側に通知されていない。 >> = client側がshutdownシーケンスに入っていない >> 2) client側にFINを送っても呼応がない >> >> …などが考えられます。 >> コネクションが維持されているということは定期的に確認パケットを送受信していると >> 思われますのでもしできれば一つのコネクションのtcpdumpで流れているパケットが >> 本当にないのか確認できれば助かるのですが…。 >> >> どうぞよろしくお願いします。 >> - >> __________________________ >> 株式会社SDY >> 中居憲久: n.nakai @ sdy.co.jp >> tel:047-401-7210 >> fax:047-401-7207 >> > > > -- > 高舘 洋介(たかだて ようすけ) > z_y.takadate @ sbr-inc.co.jp > From hibari.michirou @ nttcom.co.jp Tue Jun 28 14:06:50 2011 From: hibari.michirou @ nttcom.co.jp (=?ISO-2022-JP?B?GyRCMUA/fSEhTylPLxsoQg==?=) Date: Tue, 28 Jun 2011 14:06:50 +0900 Subject: [Ultramonkey-l7-users 416] Re: =?iso-2022-jp?b?W1VsdHJhbW9ua2V5LWw3LWRldmVsb3AgNjkzXSBSZTog?= =?iso-2022-jp?b?IFJlOiBGYWlsZWQgdG8gYWRkIHZpcnR1YWwgc2VydmljZSB0byBsN3Zz?= =?iso-2022-jp?b?ZCAbJEIlKCVpITwkSyREJCQkRhsoQg==?= In-Reply-To: References: <20110627103029.CA66.BEDBFD42@gmail.com> <20110627194449.CA89.BEDBFD42@gmail.com> Message-ID: <4E09616A.6020604@nttcom.co.jp> 雲雀です セッションプールが初期化できない要因として、 スレッド数がカーネルで設定されている最大スレッド数の 上限に達していることが考えられます。 >  session_thread_pool_size は、32です。 "session_thread_pool_size"を1にして # /etc/init.d/l7vsd start # /etc/init.d/l7directord start を試していただけますでしょうか。 もし、これで全てのVirtualServiceが追加できるようでしたら、 #cat /proc/sys/kernel/threads-max で、カーネルで設定されている最大スレッド数の上限を確認していただけますで しょうか。 以上、よろしくお願いいたします。 (2011/06/28 10:07), Shinya TAKEBAYASHI wrote: > 竹林です. > > > セションプールが初期化できなかったことが原因で,エラーが発生している模様です. > > l7vsd/src/virtualservice_tcp.cpp:755 からの try ブロック内の > > ・tcp_session のコンストラクタ > ・tcp_session::initialize() > ・session_thread_control のコンストラクタ > > のいずれかの処理で例外が発生しています. > # 例外を捕捉している部分でログメッセージが出力されているため > > > 竹林はしばらく時間がとれないためすぐに解析できない状況ですが, > どなたかいけそうな方,いらっしゃいますか. > > > takepan @ gmail.com wrote in message <20110627194449.CA89.BEDBFD42 @ gmail.com> > *** Subject: [Ultramonkey-l7-users 412] Re: Failed to add virtual service to > l7vsd エラーについて > *** Date: 2011/06/27 19:44:52 >> 竹林様 >> >>  回答ありがとうございます。竹内です。 >> >>  l7vsd.logのログは、下記になります。 >> >> ------------------------------------------------- >> 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create > session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 >> 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create > session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 >> 2011/06/27 15:29:29 [FATAL] l7vsd_virtualservice VSD50700001 error, create > session. HOSTNAME 0xb7f4a710 virtualservice_tcp.cpp:786 >> 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service > not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 >> 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service > not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 >> 2011/06/27 15:29:54 [WARN] l7vsd_virtualservice VSD30700024 virtual service > not found. HOSTNAME 0xb7f4a710 l7vsd.cpp:391 >> ------------------------------------------------- >> 2011/06/27 19:32:16 [WARN] l7vsd_virtualservice VSD30700024 virtual service >> not found. HOSTNAME 0xb7f92710 l7vsd.cpp:391 >> 2011/06/27 19:32:16 [WARN] l7vsd_virtualservice VSD30700024 virtual service > not found. HOSTNAME 0xb7f92710 l7vsd.cpp:391 >> 2011/06/27 19:32:26 [FATAL] l7vsd_virtualservice VSD50700001 error, create > session. HOSTNAME 0xb7ef4710 virtualservice_tcp.cpp:786 >> 2011/06/27 19:32:26 [FATAL] l7vsd_virtualservice VSD50700001 error, create > session. HOSTNAME 0xb7ef4710 virtualservice_tcp.cpp:786 >> ------------------------------------------------- >> >>  よろしくお願いいたします。 >> >> >> >> On Mon, 27 Jun 2011 19:23:43 +0900 >> Shinya TAKEBAYASHI wrote: >> >>> 竹林です. >>> >>> >>> l7vsd のログファイルをいただけますか. >>> >>> l7directord 内で l7vsd コマンドをキックした際,エラーが出ています. >>> 戻り値が 65280 = 1111 1111 0000 0000 なので,システムコール系関数が >>> 失敗している可能性が高いと考えます. >>> >>> /var/log/l7vsd.log などの名前で存在していると思いますので, >>> IP アドレス等はマスクした形で結構ですので,ご提示頂けると解析が進みます. >> _______________________________________________ >> Ultramonkey-l7-users mailing list >> Ultramonkey-l7-users @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users > > ----------------------------------------------------------- > 日本電信電話株式会社 研究企画部門 OSS センタ > OSS 推進ユニット 適用支援グループ > > 竹林 信哉(たけばやし しんや) > > TEL: 03-5860-5035 (直通 5044) > E-mail: takebayashi.shinya @ oss.ntt.co.jp > GPG ID: 395EFCE8 > GPG FP: 58B2 B5D0 A692 1BD8 328B E31E E027 AC35 395E FCE8 > ----------------------------------------------------------- > > _______________________________________________ > Ultramonkey-l7-develop mailing list > Ultramonkey-l7-develop @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop > > -- ============================================== NTTコムウェア株式会社 基盤技術本部 技術SE部 基盤ソフトSE・OSS部門 雲雀 路朗(ひばり みちろう) E-Mail:hibari.michirou @ nttcom.co.jp TEL:043-211-2452 ==============================================