miura
iroir****@gmail*****
2009年 11月 27日 (金) 11:16:02 JST
中居様 三浦です。お世話になります。 ご連絡有難うございました。 > この値が存在するためにultramonkey自体は使用していないソケットのガベージ > をしていません。 プログラムの知識が乏しいため的外れな質問であれば 大変申し訳ないのですが、ソケット自体はultramonkeyが kernelにオープンさせ、その後の切断処理については kernel側で判断しているという認識で良いのでしょうか。 だとすると私の環境でコネクションがいつまでも切れないのは OS側に問題が有る可能性が強いということですかね。 (OSはCentOS5.4 64bit版を使用しています) > 1) OSでパケットロストした場合のリトライ回数を減らす 減らして試してみたのですが、効果が見られませんでした。 昨日より試験的に残したコネクションも未だ切れずにいます。 (16時間くらい経過しています) > 2) max_eventsの値を大きくする l7vs.cfのmax_eventsパラメータと同一ということで 認識は合っていますでしょうか。 以前に3倍程度まで引き上げてみたのですが、 結果としては最大値まで達する日数が伸びた程度で 改善には至りませんでした。 現状では一度コネクションが残ってしまうと確認できてる 範囲では1週間以上残ってしまっています。 (切れずに上限まで達するので強制再起動で対処) 引き続き調べてみようと思います。 その際にはまた質問するかもしれませんが、 その時にはよろしくお願いします。 2009年11月26日12:27 中居憲久 <n.nak****@sdy*****>: > 三浦様 > > 中居と申します。 > お世話になっております。 > > ESTABLISHEDコネクションはACK(だけじゃないのですが)を返して待ちに入ってい > るコネクションになります。 > l7directoredを再起動すると解消されるのはvirtualserviceがいったん削除され > るため、全てのコネクションが一度closeされてOSで問答無用で閉じていると云 > う状況かと思います。 > > つまりESTABLISHEDのコネクションが残っている状況はパケットロスト等の理由 > により待ちの状態に入っているかと思います。 > (なのでtcpdumpで見ても何も流れていない状況になります) > 結果、下の方に記述してあります、RSTがロストしている状況と同じかと思います。 > > この場合、パケット待ちに入っているソケットはkernelパラメータの > tcp_timeoutの値に従い、ガベージされます。 > この値が存在するためにultramonkey自体は使用していないソケットのガベージ > をしていません。 > このあたりは設計思想によりますがTCP/IPのスタックで実現すべき部分ですので… > > ですから、経路が不安定な状況でmax_eventsに達してしまう状況の解法としては > > 1) OSでパケットロストした場合のリトライ回数を減らす > 具体的には > /proc/sys/net/ipv4/tcp_retries2 > の値を減らして(デフォルトは15)、早めにあきらめさせる。 > 今だとkernelに依存しますが2.6系だと都合190秒ほど待つ設定のはずです。 > > > 2) max_eventsの値を大きくする > src/iomux.cの47行目、 > > static int maxevents = 1024; > この値を大きくすることでESTABLISHEDになっているソケットが > OSに回収される早さと増える速度を調節する。 > (ただし、epollに渡されるevent数が増えるので速度は低下します)。 > > 上記の二つが考えられます。 > どちらもメリットデメリットが存在しますのでネットワーク環境と > その他に動いているサービスへの影響も考慮の上、ご参考までに。 > > > > > お世話になります。三浦と申します。 > > > > 以前にl7vsadmコマンドの件でご質問したものですが、 > > この件の続きで再度ご質問があります。 > > > > Webサーバ2台をl7vsdでバランシングしているのですが、 > > クライアントPCとl7vsd間でESTABLISHEDコネクションが残り続けて > > しまい、max_eventsの上限まで達してしまう現象が発生しています。 > > ESTABLISHEDのままとなってしまったコネクションをtcpdumpで調べ > > てみましたがパケットが全く流れていない状態でした。 > > > > 現象はl7directordを再起動すると一時的に解消されますが、 > > また時間がたつにつれコネクションが増えてしまいます。 > > そこで一定時間経過後にl7vsd側でこのコネクションを切断する方法等はありま > > すでしょうか。 > > > > 現在の構成としては下記のようにultramonkey-l7とWebを統合した形になります。 > > ----------------------------------------------- > > web1 (ultramonkey-l7 + Apache) > > web2 (Apache) > > ----------------------------------------------- > > また全く同じ状況は再現できていないのですが、下記の方法で似たような状況は > > 再現しております。 > > > --------------------------------------------------------------------------------------------------------------- > > TCPセッションを張る(だけ)のツールを使用して疑似的に300セッションを張り、 > > ツールを強制停止すると最大で約10%程度のセッションが残ってしまう。 > > (強制停止時にはRSTパケットをサーバに送っているのですがいくつかをロストして > > コネクションが残ってしまっている。ちなみにクライアント、サーバ間はプライ > > ベートなLAN環境です) > > > --------------------------------------------------------------------------------------------------------------- > > もし解決方などがあればご教授ください。 > > よろしくお願いします。 > > > > -- > > miura > > > > > > > > _______________________________________________ > > Ultramonkey-l7-users mailing list > > Ultra****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users > > > -- > _____________________________________________ > 中居 憲久[Norihisa NAKAI] > n.nak****@sdy***** > 株式会社SDY tel:047-401-7210/fax:047-401-7207 > > _______________________________________________ > Ultramonkey-l7-users mailing list > Ultra****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users > -- miura -------------- next part -------------- HTMLの添付ファイルを保管しました... Download