利用可能なバッファスペースなし - ICMP

利用可能なバッファスペースなし - ICMP

約1300のホストにICMPエコー要求を送信するLinuxシステム(CentOS Linuxバージョン7.3.1611)にHeartbeatクライアントを設定しようとしています。しかしこの数字は今後より高くなる。 Heartbeatによって生成されたメッセージは、他のサーバーのLogstashインスタンスに送信されます。

これらの要求は3分ごとに行われます。最初の要求の後、次のメッセージの多くにエラーが含まれます。

"write ip4 0.0.0.0->x.x.x.x: sendto: no buffer space available"

私はこの問題を軽減するために1秒以内に要求数を減らすために要求を視差することを含むさまざまな方法を試しました。これはそのパイプラインの終わりにデータ同期の問題が発生し、問題が完全に解決されなかったため、私にとっては実際には実行可能なオプションではありませんでした。

オンライン調査でシステムがTCP / IP接続に割り当てるメモリを増やしましたが、私が知っている限りこれはICMP要求であるため、分離する必要があります。

また、コンピュータがリモートで戻って復元する方法がないため、ネットワークインターフェイスを復元できません。

また、/proc/sys/net/ipv4でicmp_ratelimit変数を増やして0に設定することをテストしましたが、それも役に立ちませんでした。

私の質問は非常に一般的なものです。この問題の原因は何ですか?これらの要求が同時に出るように、システム内のいくつかの変数を調整する必要がありますか?エラーメッセージがどのバッファを参照しているかを実際に推論することはできません。

どんな助けにも感謝しています...

PS:追加の説明が必要な場合は、喜んで提供します。

編集する


それでも欠陥が別の場所にあるかどうかはわかりませんが、wmem_max、wmem_default、rem_max、rem_default変数によって決定されるソケットバッファのサイズを増やすことで/proc/sys/net/core問題を解決しました。すべてのICMPエコー要求の合計データサイズは大きすぎて、以前の最大値である208kbを下回ることができないため、ほとんどが削除されます。削除された要求の数が毎回異なる理由は実際には説明されていません。おそらく根本的な問題があるかもしれません。

唯一の問題は、システムを再起動するたびにこれらの変数が208kbにリセットされることです。これらの変更を継続的に維持するにはどうすればよいですか?

ベストアンサー1

おすすめ記事