小林 年伸
toshi****@jig-s*****
2015年 10月 5日 (月) 10:25:06 JST
竹田様 ジグソー小林です。 > ○"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番