非常に大規模な(2048台の)家庭用分散キーストアをテストしていたときにこのエラーが発生しました。通信パターンはn:nであり、これは各マシンが他のマシンに多くの要求を送信することを意味します。 私はC TCPソケットを実装するためにSO_REUSEADDRを使用してソケットをリサイクルしました。 このエラーを引き起こす可能性のあることについて、お手伝いできますか?コードは複雑ですが、単純化して必要なロジックを失うことなくここに投稿するのは難しいです。だから私は、デバッグを開始する可能性のあるすべての原因を知りたいだけです。 は8000>は、/ proc/sys/kernel /スレッド-maxのTCP接続エラー「利用可能なバッファスペースがありません」
がキューを聞くの8000>は、/ proc/sys/net /コア/ SOMAXCONN #limitエコー、デフォルトは128ですエコー:
はところで私は、設定を変更しました/ netdev_max_backlogエコー10>は、/ proc/sys/net/IPv4の/
エコーtcp_fin_timeout "10000 65000">は、/ proc/sys/net
エコー8000>は、/ proc/sys/net /コア/ ipv4/ip_local_port_range
これは、最大接続数を有効にするためのものです。私はあなたの「いいえバッファスペース利用可能」エラーと同じ問題を抱えていた-Tony
あまりにも多くのオープンディスクリプタがMTUの設定ミスやその他の条件の数も、このエラーを引き起こす可能性があり、私が想像してみてください。この問題を示す最小限のコード例がなければ、確かに言うことはできません。 –
エラーは、私が以前に会った「オープンファイル記述子が多すぎます」ではありませんでした。私もこれらの設定を持っています:echo 8000>/proc/sys/kernel/threads-max ;; echo 8000>/proc/sys/net/core/somaxconn ;; echo 8000>/proc/sys/net/core/netdev_max_backlog ;; echo 10>/proc/sys/net/ipv4/tcp_fin_timeout ;; echo "10000 65000">/proc/sys/net/ipv4/ip_local_port_range – Tony