Takeda
taked****@lab*****
2015年 10月 6日 (火) 17:05:40 JST
小林様 竹田です。 > ひとまず暫定で「maxconn」を0にすることで対応できました。 > ご教授有難うございました。 > > 只、アクティブカウントの数が増えてしまう事象が発生してしまうと > sorry機能のon・offを動的に変更しても無理でした。 > > どうぞよろしくお願いいたします。 ご報告ありがとうございます。 後者に関しては、(maxconn > 0に設定している場合) アクティブカウント数 > maxconn の状態だと 常にSorryサーバに振り分けるようになってしまうため、 手動によるSorryオン/オフは意味を成さなくなります。 引き続き、アクティブカウント数の問題については 調査を行っていきます。 以上、よろしくお願いいたします。 > -----Original Message----- > From: ultra****@lists***** > [mailto:ultra****@lists*****] On Behalf Of 小 > 林 年伸 > Sent: Monday, October 05, 2015 10:25 AM > To: ultra****@lists***** > Subject: [Ultramonkey-l7-users 604] Re: Sorryサーバーへの流入 > > 竹田様 > > ジグソー小林です。 > > > ○"maxconn"の設定をしない/もしくは"0"(無制限)にする > > この設定により、指定数以上の同時接続があった場合に > > Sorryサーバに接続するという動作を行わなくします。 > > > > なお、接続先のリアルサーバがすべてダウンした場合に関しては > > 自動的にSorryサーバへの振り分けが行われます。 > > > > また、以下のコマンドで手動によりSorryサーバへの > > 振り分けのオン/オフを切り替えることは可能です。 > > > > 例) > > # l7vsadm -E -t <仮想サービス> -m <プロトコルモジュール> -s <スケ > > ジューラ> -f <1:Sorryオン/0:Sorryオフ> > ひとまず暫定で「maxconn」を0にすることで対応できました。 > ご教授有難うございました。 > > 只、アクティブカウントの数が増えてしまう事象が発生してしまうと > sorry機能のon・offを動的に変更しても無理でした。 > > どうぞよろしくお願いいたします。 > > On 2015/09/30 11:34, 小林 年伸 wrote: > > 竹田様 > > > > ジグソー小林です。 > > > > 早速のご確認ありがとうございます。 > > まずは教えていただきました対処方法を > > 試してみます。 > > > > どうぞよろしくお願いいたします。 > > > > > > On 2015/09/30 10:54, Takeda wrote: > >> 小林様 > >> > >> コミュニティメンバの竹田と申します。 > >> > >> ご質問いただいていたSorryサーバの件です。 > >> > >> 手順およびログを提示いただきありがとうございます。 > >> こちらでも試したところ、事象を再現することができました。 > >> > >> 詳しい原因は調査中ですが、根本的な解決にあたっては > >> コードを修正しなくてはいけない可能性もあるため、 > >> 当面の対処として以下の実施を検討いただけますでしょうか。 > >> > >> ○"maxconn"の設定をしない/もしくは"0"(無制限)にする > >> この設定により、指定数以上の同時接続があった場合に > >> Sorryサーバに接続するという動作を行わなくします。 > >> > >> なお、接続先のリアルサーバがすべてダウンした場合に関しては > >> 自動的にSorryサーバへの振り分けが行われます。 > >> > >> また、以下のコマンドで手動によりSorryサーバへの > >> 振り分けのオン/オフを切り替えることは可能です。 > >> > >> 例) > >> # l7vsadm -E -t <仮想サービス> -m <プロトコルモジュール> -s <スケ > >> ジューラ> -f <1:Sorryオン/0:Sorryオフ> > >> > >> ○Sorryサーバを使用せず"fallback"を使用する > >> 本設定は仮想サービスに属するリアルサーバが全て異常となり、 > >> どのリアルサーバにも振り分けられなくなった場合に、 > >> 自動的に追加される代替リアルサーバの設定です。 > >> (仮想サーバ毎に設定可能です) > >> > >> 設定方法については管理者マニュアルをご覧ください。 > >> > https://osdn.jp/projects/ultramonkey-l7/docs/uml7-administration_manual_v3.3_ja/ja/6/uml7-administration_manual_v3.3 > _ja.txt > >> > >> 4.2.1.3 RealServer 異常時の設定 > >> (2) fallback > >> > >> いずれに関してもmaxconnの使用を避けるような > >> 形になってしまいますが、ご検討ください。 > >> > >> > >> 以上、よろしくお願いいたします。 > >> > >> > >>> -----Original Message----- > >>> From: ultra****@lists***** > >>> [mailto:ultra****@lists*****] On Behalf Of 小 > >>> 林 年伸 > >>> Sent: Tuesday, September 29, 2015 10:02 AM > >>> To: ultra****@lists***** > >>> Subject: [Ultramonkey-l7-users 601] Sorryサーバーへの流入 > >>> > >>> 開発者の皆様 > >>> > >>> jig-sawの小林と申します。 > >>> > >>> ultramonkeyl7-3.1.1、 ultramonkeyl7-3.1.2 > >>> であるきっかけで内部的にactive_countが膨大な数になり > >>> 突然Sorryサーバーに流れる事象がありましたので > >>> ご質問させていただいてよろしいでしょうか。 > >>> > >>> 以下私の方で確認できた部分です。 > >>> > >>> ================================================= > >>> ①構成 > >>> ================================================= > >>> エッジルーター > >>> ↓ > >>> ultramonkeyl7-3.1.1 or ultramonkeyl7-3.1.2 > >>> OS:CentOS 6.6 64bit > >>> pacemaker, corosyncの冗長構成 > >>> ↓ > >>> httpリアルサーバー × 2 (apache) > >>> OS:CentOS 5.5 64bit > >>> > >>> ・l7vsd設定 ※ログ部分は省略させていただきます。 > >>> ------------------------------------------ > >>> # > >>> # l7vsadm setting > >>> # > >>> [l7vsadm] > >>> cmd_interval = 1 > >>> cmd_count = 10 > >>> con_interval = 1 > >>> con_count = 1 > >>> > >>> # > >>> # l7vsd setting > >>> # > >>> [l7vsd] > >>> maxfileno = 65535 > >>> > >>> # > >>> # virtualservice setting > >>> # > >>> [virtualservice] > >>> session_thread_pool_size = 32 > >>> throughput_calc_interval = 500 > >>> #num_of_core_uses = 0 > >>> > >>> # > >>> # Session Settings > >>> # > >>> [session] > >>> upstream_buffer_size = 8192 > >>> downstream_buffer_size = 8192 > >>> server_connect_timeout = 5 > >>> > >>> [replication] > >>> 使用していません > >>> > >>> [snmpagent] > >>> enable = "false" > >>> ------------------------------------------ > >>> > >>> ・l7director設定 > >>> ------------------------------------------ > >>> # - Monitor Settings > >>> checktimeout = 5 > >>> negotiatetimeout = 5 > >>> checkinterval = 10 > >>> retryinterval = 5 > >>> checkcount = 3 > >>> > >>> # - Real Server Operation > >>> quiescent = yes > >>> #fallback = 127.0.0.1:80 > >>> > >>> # - Monitor Configuration File > >>> configinterval = 10 > >>> autoreload = yes > >>> > >>> # HTTP > >>> virtual = 〓vip〓:80 > >>> real=172.20.0.251:80 masq 10 > >>> real=172.20.0.253:80 masq 10 > >>> module = sessionless --forwarded-for > >>> sorryserver = 〓sorry srver〓 > >>> scheduler = lc > >>> qosup = 125M > >>> qosdown = 125M > >>> checktype = connect > >>> service = http > >>> quiescent = no > >>> checkcount = 2 > >>> session_thread_pool_size = 50 > >>> maxconn = 1000 > >>> ------------------------------------------ > >>> > >>> ・apache設定 ※timeout値とpreforkモジュール部分のみ抜粋です > >>> ------------------------------------------ > >>> Timeout 60 > >>> KeepAlive On > >>> MaxKeepAliveRequests 100 > >>> KeepAliveTimeout 2 > >>> > >>> <IfModule prefork.c> > >>> StartServers 8 > >>> MinSpareServers 5 > >>> MaxSpareServers 20 > >>> ServerLimit 256 > >>> MaxClients 256 > >>> MaxRequestsPerChild 4000 > >>> </IfModule> > >>> ------------------------------------------ > >>> > >>> ================================================= > >>> ②事象 > >>> ================================================= > >>> 1). 上の構成でultramonkeyl7のvipにtelnetコマンドで接続 > >>> $ telnet 〓vip〓 80 > >>> Trying 〓vip〓 > >>> Connected to 〓vip〓 > >>> Escape character is '^]'. > >>> GET / HTTP/1.0 > >>> > >>> 通常通り操作を行えばリアルサーバーのコンテンツが返ってきます。 > >>> 以下はl7vsd_virtualserviceのデバッグログです > >>> ---------------------------------------- > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700031 active > >>> session thread id = 0x16003f0 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:457 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700032 > >>> pool_session.size = 49 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:460 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700033 > >>> active_session.size = 1 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:463 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700034 > >>> active_count = 0 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:466 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700007 > >>> in_function > >>> : void session_thread_control::startupstream() 〓ホスト名〓 > >>> 0x7ffd78fc7700 session_thread_control.cpp:211 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700008 > >>> out_function : void session_thread_control::startupstream() :status = > >>> 1 > >>> 〓ホスト名〓 0x7ffd78fc7700 session_thread_control.cpp:219 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700011 > >>> in_function > >>> : void session_thread_control::startdownstream() 〓ホスト名〓 > >>> 0x7ffd78fc7700 session_thread_control.cpp:246 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700012 > >>> out_function : void session_thread_control::startdownstream() : > >>> status = > >>> 1 〓ホスト名〓 0x7ffd78fc7700 session_thread_control.cpp:254 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700035 active > >>> session thread id = 0x1610400 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:512 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700036 > >>> pool_session.size = 48 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:515 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700037 > >>> active_session.size = 1 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:518 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700038 > >>> active_count = 0 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:521 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700039 > >>> out_function: void virtualservice_tcp::handle_accept( const > >>> boost::shared_ptr<session_thread_control> , const > >>> boost::system::error_code& err ) 〓ホスト名〓 0x7ffd78fc7700 > >>> virtualservice_tcp.cpp:544 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700082 > >>> in_function: void virtualservice_tcp::connection_active( const > >>> boost::asio::ip::tcp::endpoint& in ): in = 172.20.0.251:80 〓ホスト名〓 > >>> > >>> 0x7ffceef02700 virtualservice_tcp.cpp:1706 > >>> 2015/09/28 19:03:12 [DEBUG] l7vsd_virtualservice VSD10700083 > >>> out_function: void virtualservice_tcp::connection_active() 〓ホスト名〓 > >>> > >>> 0x7ffceef02700 virtualservice_tcp.cpp:1722 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700084 > >>> in_function: void virtualservice_tcp::connection_inactive( const > >>> boost::asio::ip::tcp::endpoint& in ): in = 172.20.0.251:80 〓ホスト名〓 > >>> > >>> 0x7ffceef02700 virtualservice_tcp.cpp:1738 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700085 > >>> out_function: void virtualservice_tcp::connection_inactive() 〓ホスト名 > >>> > >>> 〓 0x7ffceef02700 virtualservice_tcp.cpp:1774 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700013 > >>> in_function > >>> : void session_thread_control::stopdownstream() 〓ホスト名〓 > >>> 0x7ffcee501700 session_thread_control.cpp:264 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700014 > >>> out_function : void session_thread_control::stopdownstream() : status > >>> = > >>> 0 〓ホスト名〓 0x7ffcee501700 session_thread_control.cpp:271 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700086 > >>> in_function: void virtualservice_tcp::release_session( const > >>> tcp_session* session_ptr ): session_ptr = 0x16ea650 〓ホスト名〓 > >>> 0x7ffceef02700 virtualservice_tcp.cpp:1790 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700089 > >>> pool_session.size = 48 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1810 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700090 > >>> active_session.size = 1 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1813 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700091 > >>> active_count = 0 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1816 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700092 > >>> pool_session.size = 49 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1825 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700093 > >>> active_session.size = 0 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1828 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700094 > >>> active_count = 0 〓ホスト名〓 0x7ffceef02700 > >>> virtualservice_tcp.cpp:1831 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700095 > >>> out_function: void virtualservice_tcp::release_session( const > >>> tcp_session* session_ptr ): session_ptr = 0x16ea650 〓ホスト名〓 > >>> 0x7ffceef02700 virtualservice_tcp.cpp:1836 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700009 > >>> in_function > >>> : void session_thread_control::stopupstream() 〓ホスト名〓 > >>> 0x7ffceef02700 session_thread_control.cpp:229 > >>> 2015/09/28 19:03:22 [DEBUG] l7vsd_virtualservice VSD10700010 > >>> out_function : void session_thread_control::stopupstream() : status = > >>> 0 > >>> 〓ホスト名〓 0x7ffceef02700 session_thread_control.cpp:236 > >>> > >>> > >>> 2). 上の構成でultramonkeyl7のvipにtelnetコマンドで接続、後続のapacheが > >>> timeoutする60秒以上放置 > >>> $ telnet 〓vip〓 80 > >>> Trying 〓vip〓 > >>> Connected to 〓vip〓 > >>> Escape character is '^]'. > >>> > >>> リアルサーバがtimeoutすると以下のログが出力されました > >>> ---------------------------------------- > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700027 > >>> in_function: void virtualservice_tcp::handle_accept( const > >>> boost::shared_ptr<session_thread_control> , const > >>> boost::system::error_code& err ): err = false, err.message = Success > >>> 〓 > >>> ホスト名〓 0x7fcc5ea5d700 virtualservice_tcp.cpp:349 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700031 active > >>> session thread id = 0x1e0dd70 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:457 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700032 > >>> pool_session.size = 49 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:460 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700033 > >>> active_session.size = 1 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:463 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700034 > >>> active_count = 0 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:466 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700007 > >>> in_function > >>> : void session_thread_control::startupstream() 〓ホスト名〓 > >>> 0x7fcc5ea5d700 session_thread_control.cpp:211 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700008 > >>> out_function : void session_thread_control::startupstream() :status = > >>> 1 > >>> 〓ホスト名〓 0x7fcc5ea5d700 session_thread_control.cpp:219 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700011 > >>> in_function > >>> : void session_thread_control::startdownstream() 〓ホスト名〓 > >>> 0x7fcc5ea5d700 session_thread_control.cpp:246 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700012 > >>> out_function : void session_thread_control::startdownstream() : > >>> status = > >>> 1 〓ホスト名〓 0x7fcc5ea5d700 session_thread_control.cpp:254 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700035 active > >>> session thread id = 0x1e1f890 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:512 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700036 > >>> pool_session.size = 48 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:515 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700037 > >>> active_session.size = 1 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:518 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700038 > >>> active_count = 0 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:521 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700039 > >>> out_function: void virtualservice_tcp::handle_accept( const > >>> boost::shared_ptr<session_thread_control> , const > >>> boost::system::error_code& err ) 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:544 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700082 > >>> in_function: void virtualservice_tcp::connection_active( const > >>> boost::asio::ip::tcp::endpoint& in ): in = 172.20.0.251:80 〓ホスト名〓 > >>> > >>> 0x7fccba1fc700 virtualservice_tcp.cpp:1706 > >>> 2015/09/28 19:14:10 [DEBUG] l7vsd_virtualservice VSD10700083 > >>> out_function: void virtualservice_tcp::connection_active() 〓ホスト名〓 > >>> > >>> 0x7fccba1fc700 virtualservice_tcp.cpp:1722 > >>> > >>> > >>> 3). 2)の状態からtelnet側で操作を行うと後続がtimeoutしているので何も返っ > >>> > >>> てきません > >>> $ telnet 〓vip〓 80 > >>> Trying 〓vip〓 > >>> Connected to 〓vip〓 > >>> Escape character is '^]'. > >>> GET / HTTP/1.0 > >>> > >>> Connection closed. > >>> > >>> この時以下のログが出力されました > >>> ---------------------------------------- > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700084 > >>> in_function: void virtualservice_tcp::connection_inactive( const > >>> boost::asio::ip::tcp::endpoint& in ): in = 172.20.0.251:80 〓ホスト名〓 > >>> > >>> 0x7fccba1fc700 virtualservice_tcp.cpp:1738 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700085 > >>> out_function: void virtualservice_tcp::connection_inactive() 〓ホスト名 > >>> > >>> 〓 0x7fccba1fc700 virtualservice_tcp.cpp:1774 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700086 > >>> in_function: void virtualservice_tcp::release_session( const > >>> tcp_session* session_ptr ): session_ptr = 0x1dfc850 〓ホスト名〓 > >>> 0x7fccba1fc700 virtualservice_tcp.cpp:1790 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700089 > >>> pool_session.size = 48 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1810 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700090 > >>> active_session.size = 1 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1813 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700091 > >>> active_count = 18446744073709551615 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1816 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700092 > >>> pool_session.size = 49 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1825 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700093 > >>> active_session.size = 0 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1828 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700094 > >>> active_count = 18446744073709551615 〓ホスト名〓 0x7fccba1fc700 > >>> virtualservice_tcp.cpp:1831 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700095 > >>> out_function: void virtualservice_tcp::release_session( const > >>> tcp_session* session_ptr ): session_ptr = 0x1dfc850 〓ホスト名〓 > >>> 0x7fccba1fc700 virtualservice_tcp.cpp:1836 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700009 > >>> in_function > >>> : void session_thread_control::stopupstream() 〓ホスト名〓 > >>> 0x7fccba1fc700 session_thread_control.cpp:229 > >>> 2015/09/28 19:15:37 [DEBUG] l7vsd_virtualservice VSD10700010 > >>> out_function : void session_thread_control::stopupstream() : status = > >>> 0 > >>> 〓ホスト名〓 0x7fccba1fc700 session_thread_control.cpp:236 > >>> > >>> > >>> 4).その後もう一度1)の通常操作を行うとactive_countが膨大な数になり以後 > >>> l7vsdを再起動若しくはバーチャルサービスを消さないかぎりSorryサーバー > >>> へ流 > >>> され続けます > >>> > >>> この時以下のログが出力されました > >>> ---------------------------------------- > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700027 > >>> in_function: void virtualservice_tcp::handle_accept( const > >>> boost::shared_ptr<session_thread_control> , const > >>> boost::system::error_code& err ): err = false, err.message = Success > >>> 〓 > >>> ホスト名〓 0x7fcc5ea5d700 virtualservice_tcp.cpp:349 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700030 > >>> Connection > >>> switch Sorry mode. active_session.size = 1, active_count.get = > >>> 18446744073709551615 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:448 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700031 active > >>> session thread id = 0x1e1f890 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:457 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700032 > >>> pool_session.size = 49 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:460 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700033 > >>> active_session.size = 1 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:463 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700034 > >>> active_count = 18446744073709551615 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:466 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700007 > >>> in_function > >>> : void session_thread_control::startupstream() 〓ホスト名〓 > >>> 0x7fcc5ea5d700 session_thread_control.cpp:211 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700008 > >>> out_function : void session_thread_control::startupstream() :status = > >>> 1 > >>> 〓ホスト名〓 0x7fcc5ea5d700 session_thread_control.cpp:219 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700011 > >>> in_function > >>> : void session_thread_control::startdownstream() 〓ホスト名〓 > >>> 0x7fcc5ea5d700 session_thread_control.cpp:246 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700012 > >>> out_function : void session_thread_control::startdownstream() : > >>> status = > >>> 1 〓ホスト名〓 0x7fcc5ea5d700 session_thread_control.cpp:254 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700035 active > >>> session thread id = 0x1e313b0 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:512 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700036 > >>> pool_session.size = 48 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:515 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700037 > >>> active_session.size = 1 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:518 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700038 > >>> active_count = 18446744073709551615 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:521 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700039 > >>> out_function: void virtualservice_tcp::handle_accept( const > >>> boost::shared_ptr<session_thread_control> , const > >>> boost::system::error_code& err ) 〓ホスト名〓 0x7fcc5ea5d700 > >>> virtualservice_tcp.cpp:544 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700017 > >>> in_function > >>> : l7vs::virtualservice_element& virtualservice_base::get_element() 〓ホ > >>> > >>> スト名〓 0x7fccb8dfa700 virtualservice_base.cpp:577 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700018 element > >>> struct data, udpmode = TCP, tcp_accept_endpoint = 〓vip〓:80, > >>> udp_recv_endpoint = 0.0.0.0:0, realserver_vector:size = 2, > >>> protocol_module_name = sessionless, schedule_module_name = lc, > >>> protocol_args.size = 1, sorry_maxconnection = 1000, sorry_endpoint = > >>> 〓sorry サーバー〓, sorry_flag = 0, qos_upstream = 15625000, > >>> qos_downstream = 15625000, throughput_upstream = 0, > >>> throughput_downstream = 0, ssl_file_name = , http_total_count = 0, > >>> http_get_count = 0, http_post_count = 0 〓ホスト名〓 0x7fccb8dfa700 > >>> virtualservice_base.cpp:626 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700019 > >>> out_function : l7vs::virtualservice_element& > >>> virtualservice_base::get_element() 〓ホスト名〓 0x7fccb8dfa700 > >>> virtualservice_base.cpp:627 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700017 > >>> in_function > >>> : l7vs::virtualservice_element& virtualservice_base::get_element() 〓ホ > >>> > >>> スト名〓 0x7fccb8dfa700 virtualservice_base.cpp:577 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700018 element > >>> struct data, udpmode = TCP, tcp_accept_endpoint = 〓vip〓:80, > >>> udp_recv_endpoint = 0.0.0.0:0, realserver_vector:size = 2, > >>> protocol_module_name = sessionless, schedule_module_name = lc, > >>> protocol_args.size = 1, sorry_maxconnection = 1000, sorry_endpoint = > >>> 〓sorry サーバー〓, sorry_flag = 0, qos_upstream = 15625000, > >>> qos_downstream = 15625000, throughput_upstream = 0, > >>> throughput_downstream = 0, ssl_file_name = , http_total_count = 0, > >>> http_get_count = 0, http_post_count = 0 〓ホスト名〓 0x7fccb8dfa700 > >>> virtualservice_base.cpp:626 > >>> 2015/09/28 19:16:27 [DEBUG] l7vsd_virtualservice VSD10700019 > >>> out_function : l7vs::virtualservice_element& > >>> virtualservice_base::get_element() 〓ホスト名〓 0x7fccb8dfa700 > >>> virtualservice_base.cpp:627 > >>> > >>> 私の見方が違うかもしれませんが > >>> active_countをインクリメントしている部分をみるとloopしていれば > >>> ログも大量に出力されそうなのですがそうはなっておりません。 > >>> https://osdn.jp/projects/ultramonkey-l7/scm/git/ultramonkey-l7-v3/blobs/master/l7vsd/src/virtualservice_tcp.cpp > >>> > >>> > >>> virtualservice_tcp.cpp 441行目付近のこの部分がおかしくなってますで > >>> しょうか? > >>> ((0 < element.sorry_maxconnection) && ((active_count.get() >= > >>> static_cast<size_t>(element.sorry_maxconnection))) > >>> > >>> > >>> 長くなりましたが、可能であれば回避する方法をご教授いただけますでしょ > >>> うか。 > >>> > >>> お手数ですが、何卒よろしくお願いいたします。 > >>> > >>> -- > >>> -------------------------------------------- > >>> ジグソー株式会社 > >>> 小林 年伸 > >>> E-mail:toshi****@jig-s***** > >>> Tel:011-737-0240 Fax:011-737-0241 > >>> 〒060-0808 > >>> 北海道札幌市北区北8条西3丁目32番 > >>> > >>> _______________________________________________ > >>> Ultramonkey-l7-users mailing list > >>> Ultra****@lists***** > >>> http://lists.osdn.me/mailman/listinfo/ultramonkey-l7-users > > > > > > > -- > -------------------------------------------- > ジグソー株式会社 > 小林 年伸 > E-mail:toshi****@jig-s***** > Tel:011-737-0240 Fax:011-737-0241 > 〒060-0808 > 北海道札幌市北区北8条西3丁目32番 > > _______________________________________________ > Ultramonkey-l7-users mailing list > Ultra****@lists***** > http://lists.osdn.me/mailman/listinfo/ultramonkey-l7-users