1

非常に大規模 (2048 マシン) で自家製の分散キー値ストアをテストしていたときに、このエラーが発生しました。1024 マシンでは問題なく動作します。通信パターンは n:n です。これは、各マシンが他のすべてのマシンに大量の要求を送信することを意味します。C TCP ソケットを使用して実装し、SO_REUSEADDR を使用してそれらのソケットをリサイクルしました。このエラーを引き起こす可能性のある可能性について、誰かが私にいくつかのヒントを教えてもらえますか? コードは複雑です。必要なロジックを失わずに単純化してここに投稿するのは困難です。したがって、デバッグを開始する可能性のあるすべての原因を知りたいだけです。

ところで、次のように設定を変更しました: echo 8000 > /proc/sys/kernel/threads-max

echo 8000 > /proc/sys/net/core/somaxconn #リッスン キューの制限、デフォルトは 128

エコー 8000 > /proc/sys/net/core/netdev_max_backlog

エコー 10 > /proc/sys/net/ipv4/tcp_fin_timeout

echo "10000 65000" > /proc/sys/net/ipv4/ip_local_port_range

これは、最大接続数を有効にするためだけです。

ありがとう - トニー

4

1 に答える 1

2

「No buffer space available」エラーと同じ問題がありました。あなたが行ったエコーパッチは一時的な設定と見なされます。

(上記のように) echo を使用して一時的な設定を変更した後、ネットワークを再起動する必要があります。

/etc/sysctl.conf ファイルの最後に次の行を追加して、永続的な設定を追加する必要があります。

somaxconn = 8000

ここを参照してください: http://www.cyberciti.biz/files/linux-kernel/Documentation/networking/ip-sysctl.txt

それが役に立てば幸い。

ロバート

http://NetworkCities.com

于 2012-04-19T19:11:23.887 に答える