web-dev-qa-db-ja.com

クライアントが多すぎる

Stunnelとhaproxyを接続して、https接続をいくつかのバックエンドサーバーに転送しようとしています。

Haproxyが正しく設定されており、stunnelが正しく設定されているようです。問題は、しばらくして負荷テストでセットアップを実行すると、これらのログエントリが表示されるようになることです(接続拒否エラーが発生する前に、適切な接続からの最後のいくつかのエントリを含めました)。

2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=510 from 10.195.158.225:42722
2010.05.05 11:23:29 LOG7[3498:3035233168]: https started
2010.05.05 11:23:29 LOG7[3498:3035233168]: FD 510 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035233168]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035233168]: Waiting for a libwrap process
2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=511 from 10.195.158.225:42723
2010.05.05 11:23:29 LOG7[3498:3035167632]: https started
2010.05.05 11:23:29 LOG7[3498:3035167632]: FD 511 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035167632]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035167632]: Waiting for a libwrap process
2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42724
2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500)
2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42725
2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500)

どこかで制限に達したと思いますが、それを修正する方法がわかりませんでした。stunnelがこれを変更するための設定ファイルオプションがないようです。

潜在的に多数の接続に対してstunnelを構成する方法を知っている人はいますか?

3
davidsmalley

私が覚えていることから、stunnelは単にulimit設定に依存して、ファイル記述子でその制限を見つけます。したがって、「ulimit -n 65536」を実行するだけで、約32000のクライアント制限が発生します。

ただし、各SSLコンテキストは大量のメモリを使用する可能性があるため、注意してください。また、stunnelがスレッドモードで動作する場合、必ずしもそれほど高いスレッド数に到達する必要はありません。

4
Willy Tarreau

ここで制限を確認してください:cat /proc/$(pidof stunnel4)/limits

次に、ファイルを編集します_/etc/default/stunnel4_:RLIMITSを設定します:_RLIMITS="-n 65536"_

Stunnelを再起動します:_Sudo /etc/init.d/stunnel4 restart_

もう一度cat /proc/$(pidof stunnel4)/limitsで制限を確認してください。

0
Carson Ip