From takepan @ gmail.com Fri Jul 8 09:46:19 2011 From: takepan @ gmail.com (takepan @ gmail.com) Date: Fri, 08 Jul 2011 09:46:19 +0900 Subject: [Ultramonkey-l7-develop 702] Re: =?iso-2022-jp?b?W1VsdHJhbW9ua2V5LWw3LXVzZXJzIDQxMl0gUmU6IEZh?= =?iso-2022-jp?b?aWxlZCB0byBhZGQgdmlydHVhbCBzZXJ2aWNlIHRvIGw3dnNk?= =?iso-2022-jp?b?IBskQiUoJWkhPCRLJEQkJCRGGyhC?= In-Reply-To: <4E12C134.2050306@nttcom.co.jp> References: <20110705102847.FBEF.BEDBFD42@gmail.com> <4E12C134.2050306@nttcom.co.jp> Message-ID: <20110708094616.FC4B.BEDBFD42@gmail.com> 中野様  ご回答ありがとうございます。 レスポンスが遅くて申し訳ありません。  ご教示いただいた通りに設定してみましたところ、無事に動作しました!  /etc/security/limits.conf に下記内容を追記し、 > * soft stack 5120 > * hard stack 5120  ログインしなおしてからl7vsd、l7directordを再起動したところ、無事 7ポートの起動が確認できました。  現在テスト運用しているサーバはultramonkey-l7専用です。 動作に必要なスタックサイズを調べたいのですが、トライ&エラーで探って いく感じでしょうか?  アドバイスいただき、本当にありがとうございました。 On Tue, 05 Jul 2011 16:45:56 +0900 中野 宏朗 wrote: > 竹内さん > > 中野と申します。 > こんにちは。 > > ulimit -s 5120 > > とか設定設定したら、6ポートとか7ポートで、32スレッド動いたりします? > > ulimit -a の出力みたら、1スレッドあたりのスタックサイズが10MBに > なっているので、 > > 6ポート×32スレッド×10M = 1920MB > > となって、カーネルが占有するメモリも考えると、2GBのメインメモリじゃ > 足らなくなってるんじゃないかな〜、と。 > UltraMonkey-L7は、きっとスタックサイズに10MBもいらないと > 思うんで、スタックサイズを減らしてみてはどうでしょう。 > > 他のアプリとの同居でスタックサイズが10MB必須とかなら、UltraMonkeyの > スレッド数かポート数を減らすしかないかも。 From h-nakano @ iwao.net Fri Jul 8 13:44:09 2011 From: h-nakano @ iwao.net (=?ISO-2022-JP?B?GyRCQ2ZMbhsoQiAbJEI5KE8vGyhC?=) Date: Fri, 08 Jul 2011 13:44:09 +0900 Subject: [Ultramonkey-l7-develop 703] Re: =?iso-2022-jp?b?W1VsdHJhbW9ua2V5LWw3LXVzZXJzIDQxMl0gUmU6IEZh?= =?iso-2022-jp?b?aWxlZCB0byBhZGQgdmlydHVhbCBzZXJ2aWNlIHRvIGw3dnNkIA==?= =?iso-2022-jp?b?GyRCJSglaSE8JEskRCQkJEYbKEI=?= In-Reply-To: <20110708094616.FC4B.BEDBFD42@gmail.com> References: <20110705102847.FBEF.BEDBFD42@gmail.com> <4E12C134.2050306@nttcom.co.jp> <20110708094616.FC4B.BEDBFD42@gmail.com> Message-ID: <4E168B19.4020605@iwao.net> To: 竹内さん 中野です。 (アドレスかわってますがw) 動作したようで、おめでとうございます^^ スタックサイズですが、どのくらい必要かはおっしゃるとおり、 トライ&エラーになるかもです。。 スタック必要サイズを意識して作られてるようには見えないですし・・・ C++で作られてますし・・・ Cなら、pthread関連のAPIで設定したりしますけど。 と、ぐぐってみたらこんなブログ見つけました。 http://0xcc.net/blog/archives/000115.html こんなのあったんですね。知らなかった。 とりあえず、自分のもってるカーネルgitリポジトリから、 checkstack.plを取ってきてメールに添付してみます。 いま、UltraMonkey-L7がない環境にいるので、竹内さんのほうで ブログにあるように、 # objdump -d `which l7vsd` | perl checkstack.pl とかで、どのくらいになるか計ってみてください。 あ、でもスレッドのスタックとかはどう計るんだろ・・・ まあ、上記で目安にはなるかな? たぶん、1スレッドあたり1MBも使わないと (あてずっぽうでw)予想してます。 (2011/07/08 9:46), takepan @ gmail.com wrote: > 中野様 > >  ご回答ありがとうございます。 > レスポンスが遅くて申し訳ありません。 > >  ご教示いただいた通りに設定してみましたところ、無事に動作しました! > >  /etc/security/limits.conf に下記内容を追記し、 > >> * soft stack 5120 >> * hard stack 5120 > >  ログインしなおしてからl7vsd、l7directordを再起動したところ、無事 > 7ポートの起動が確認できました。 > >  現在テスト運用しているサーバはultramonkey-l7専用です。 > 動作に必要なスタックサイズを調べたいのですが、トライ&エラーで探って > いく感じでしょうか? > >  アドバイスいただき、本当にありがとうございました。 > > > On Tue, 05 Jul 2011 16:45:56 +0900 > 中野 宏朗 wrote: > >> 竹内さん >> >> 中野と申します。 >> こんにちは。 >> >> ulimit -s 5120 >> >> とか設定設定したら、6ポートとか7ポートで、32スレッド動いたりします? >> >> ulimit -a の出力みたら、1スレッドあたりのスタックサイズが10MBに >> なっているので、 >> >> 6ポート×32スレッド×10M = 1920MB >> >> となって、カーネルが占有するメモリも考えると、2GBのメインメモリじゃ >> 足らなくなってるんじゃないかな〜、と。 >> UltraMonkey-L7は、きっとスタックサイズに10MBもいらないと >> 思うんで、スタックサイズを減らしてみてはどうでしょう。 >> >> 他のアプリとの同居でスタックサイズが10MB必須とかなら、UltraMonkeyの >> スレッド数かポート数を減らすしかないかも。 > > _______________________________________________ > Ultramonkey-l7-develop mailing list > Ultramonkey-l7-develop @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop > -------------- next part -------------- 文字コード指定の無い添付文書を保管しました... 名前: checkstack.pl URL: http://lists.sourceforge.jp/mailman/archives/ultramonkey-l7-develop/attachments/20110708/e55f03e2/attachment.txt From takepan @ gmail.com Fri Jul 8 15:10:54 2011 From: takepan @ gmail.com (takepan @ gmail.com) Date: Fri, 08 Jul 2011 15:10:54 +0900 Subject: [Ultramonkey-l7-develop 704] Re: =?iso-2022-jp?b?W1VsdHJhbW9ua2V5LWw3LXVzZXJzIDQxMl0gUmU6IEZh?= =?iso-2022-jp?b?aWxlZCB0byBhZGQgdmlydHVhbCBzZXJ2aWNlIHRvIGw3dnNk?= =?iso-2022-jp?b?IBskQiUoJWkhPCRLJEQkJCRGGyhC?= In-Reply-To: <4E168B19.4020605@iwao.net> References: <20110708094616.FC4B.BEDBFD42@gmail.com> <4E168B19.4020605@iwao.net> Message-ID: <20110708151051.FC55.BEDBFD42@gmail.com> 中野様  回答ありがとうございます。  お送りいただいたcheckstack.plを実行したところ、 576行ものログが出てきました。  以下、一部です。 ------------------------------------------------- 0x0817ebb6 _ZN4l7vs14tcp_ssl_socket5closeERN5boost6system10error_codeE [l7vsd]:17340 0x08180043 _ZN4l7vs14tcp_ssl_socket9read_someEN5boost4asio17mutable_buffers_1ERNS1_6system10error_codeE [l7vsd]:17128 0x08180c26 _ZN4l7vs14tcp_ssl_socket10write_someEN5boost4asio17mutable_buffers_1ERNS1_6system10error_codeE [l7vsd]:16892 0x0817f8f6 _ZN4l7vs14tcp_ssl_socket9handshakeERN5boost6system10error_codeE [l7vsd]:16828 0x0817fabb _ZN4l7vs14tcp_ssl_socket9handshakeERN5boost6system10error_codeE [l7vsd]:16828 -------------------------------------------------  ブログの内容から、:の右側を合計するのかな、と思い計算した結果は、 325,896(バイト)でした。  stack sizeを調整していない環境の方では、1,064行で合計796,792(バイト) でした。  中野様の仰る通り、1MB以下のようです。 極端な話ですが、stack sizeをさらに1/5の1024KBにして、 session_thread_pool_sizeを5倍の160にして動作させることも 考えられる、という感じでしょうか?  とりあえず、stack sizeとsession_thread_pool_size を調整しながら使っていこうと思います。 On Fri, 08 Jul 2011 13:44:09 +0900 中野 宏朗 wrote: > To: 竹内さん > > 中野です。 > (アドレスかわってますがw) > > 動作したようで、おめでとうございます^^ > > スタックサイズですが、どのくらい必要かはおっしゃるとおり、 > トライ&エラーになるかもです。。 > スタック必要サイズを意識して作られてるようには見えないですし・・・ > C++で作られてますし・・・ > Cなら、pthread関連のAPIで設定したりしますけど。 > > と、ぐぐってみたらこんなブログ見つけました。 > http://0xcc.net/blog/archives/000115.html > > こんなのあったんですね。知らなかった。 > とりあえず、自分のもってるカーネルgitリポジトリから、 > checkstack.plを取ってきてメールに添付してみます。 > > いま、UltraMonkey-L7がない環境にいるので、竹内さんのほうで > ブログにあるように、 > > # objdump -d `which l7vsd` | perl checkstack.pl > > とかで、どのくらいになるか計ってみてください。 > > あ、でもスレッドのスタックとかはどう計るんだろ・・・ > まあ、上記で目安にはなるかな? > > たぶん、1スレッドあたり1MBも使わないと > (あてずっぽうでw)予想してます。 From h-nakano @ iwao.net Fri Jul 8 19:06:55 2011 From: h-nakano @ iwao.net (=?ISO-2022-JP?B?GyRCQ2ZMbhsoQiAbJEI5KE8vGyhC?=) Date: Fri, 08 Jul 2011 19:06:55 +0900 Subject: [Ultramonkey-l7-develop 705] Re: =?iso-2022-jp?b?W1VsdHJhbW9ua2V5LWw3LXVzZXJzIDQxMl0gUmU6IEZh?= =?iso-2022-jp?b?aWxlZCB0byBhZGQgdmlydHVhbCBzZXJ2aWNlIHRvIGw3dnNkIA==?= =?iso-2022-jp?b?GyRCJSglaSE8JEskRCQkJEYbKEI=?= In-Reply-To: <20110708151051.FC55.BEDBFD42@gmail.com> References: <20110708094616.FC4B.BEDBFD42@gmail.com> <4E168B19.4020605@iwao.net> <20110708151051.FC55.BEDBFD42@gmail.com> Message-ID: <4E16D6BF.8020006@iwao.net> 中野です。 バイナリファイル相手でも環境によってかわるんですね〜。 1MBでも動作はとりあえずすると思います。 でも、過負荷状態になったときはどうなんだろう・・・ スレッド内で持つデータ量はそんなに変わらず、なんとか なるのかな? C++はDWARF2(どわーふ2と読みます)という機構で、例外処理とか 継承オブジェクトとか、なんでもかんでもスタックに (実行コードまで!)放り込んで、使い終わったら消して、を 繰り返すので、なかなか予想しづらいところです>< でも、1MB、安全みこしても2MBあればなんとかなりそうですね。 ちなみに、一般的なLinuxディストリビューションでは、 8MBが初期値のことが多いです。 まあ、あとは竹内さんのおっしゃるとおり、調整しながら 運用するしかないかな、と思います。 (2011/07/08 15:10), takepan @ gmail.com wrote: > 中野様 > >  回答ありがとうございます。 > >  お送りいただいたcheckstack.plを実行したところ、 > 576行ものログが出てきました。 >  以下、一部です。 > ------------------------------------------------- > 0x0817ebb6 _ZN4l7vs14tcp_ssl_socket5closeERN5boost6system10error_codeE [l7vsd]:17340 > 0x08180043 _ZN4l7vs14tcp_ssl_socket9read_someEN5boost4asio17mutable_buffers_1ERNS1_6system10error_codeE [l7vsd]:17128 > 0x08180c26 _ZN4l7vs14tcp_ssl_socket10write_someEN5boost4asio17mutable_buffers_1ERNS1_6system10error_codeE [l7vsd]:16892 > 0x0817f8f6 _ZN4l7vs14tcp_ssl_socket9handshakeERN5boost6system10error_codeE [l7vsd]:16828 > 0x0817fabb _ZN4l7vs14tcp_ssl_socket9handshakeERN5boost6system10error_codeE [l7vsd]:16828 > ------------------------------------------------- > >  ブログの内容から、:の右側を合計するのかな、と思い計算した結果は、 > 325,896(バイト)でした。 >  stack sizeを調整していない環境の方では、1,064行で合計796,792(バイト) > でした。 > >  中野様の仰る通り、1MB以下のようです。 > 極端な話ですが、stack sizeをさらに1/5の1024KBにして、 > session_thread_pool_sizeを5倍の160にして動作させることも > 考えられる、という感じでしょうか? > >  とりあえず、stack sizeとsession_thread_pool_size > を調整しながら使っていこうと思います。 > > > > On Fri, 08 Jul 2011 13:44:09 +0900 > 中野 宏朗 wrote: > >> To: 竹内さん >> >> 中野です。 >> (アドレスかわってますがw) >> >> 動作したようで、おめでとうございます^^ >> >> スタックサイズですが、どのくらい必要かはおっしゃるとおり、 >> トライ&エラーになるかもです。。 >> スタック必要サイズを意識して作られてるようには見えないですし・・・ >> C++で作られてますし・・・ >> Cなら、pthread関連のAPIで設定したりしますけど。 >> >> と、ぐぐってみたらこんなブログ見つけました。 >> http://0xcc.net/blog/archives/000115.html >> >> こんなのあったんですね。知らなかった。 >> とりあえず、自分のもってるカーネルgitリポジトリから、 >> checkstack.plを取ってきてメールに添付してみます。 >> >> いま、UltraMonkey-L7がない環境にいるので、竹内さんのほうで >> ブログにあるように、 >> >> # objdump -d `which l7vsd` | perl checkstack.pl >> >> とかで、どのくらいになるか計ってみてください。 >> >> あ、でもスレッドのスタックとかはどう計るんだろ・・・ >> まあ、上記で目安にはなるかな? >> >> たぶん、1スレッドあたり1MBも使わないと >> (あてずっぽうでw)予想してます。 > > _______________________________________________ > Ultramonkey-l7-develop mailing list > Ultramonkey-l7-develop @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop >