netdata ipv4 UDP 錯誤

netdata ipv4 UDP 錯誤

我最近安裝了網路數據在我擁有的 Amazon EC2 Debian 執行個體上。 Netdata 非常酷,有漂亮的圖表/圖形,安裝起來非常簡單(與其他軟體相比)。

我每天都會收到這樣的訊息

1m ipv4 udp receive buffer errors = 9 errors
number of UDP receive buffer errors during the last minute

幾分鐘後,一則恢復訊息。全天可能有數百個 UDP/TCP 錯誤。我還在家裡運行的伺服器上看到了類似的模式。

多年來我使用過其他監控包,但從未見過此類錯誤。我懷疑某種程度的錯誤,尤其是 UDP 上的錯誤,是正常的,對嗎?這是預期的行為嗎?我可以關閉這些警報的監控嗎?

我已經將家裡機器上的第二個網卡轉移到了,行為上沒有任何本質的改變。

中型環境中可接受的乙太網路錯誤數量?顯示我可能遇到了嚴重的問題,我當然可以嘗試家裡的其他網卡。但是我可以在我的 EC2 執行個體上解決這個問題嗎?

還值得注意的是,logwatch 根本沒有報告任何問題,但是,它可能沒有為此進行配置。

感謝您的指導。

答案1

netdata用作statsd指標收集系統。這是一個基於 UDP 的協議,速度非常快且高效,但在高速率下可能會溢出入口節點的 recv_buffer。預設接收緩衝區約為 1M - 因此,如果 statsd 代理無法足夠快地消耗資料以防止緩衝區填滿,核心將丟棄資料報。

簡單的解決方案是將接收緩衝區增加到更大的大小以處理峰值 - 這通常可以解決 UDP 緩衝區溢位的問題。如果您仍然始終看到上面的日誌,則需要增加電腦的 CPU 容量或轉向效能更高的 statsd 實作(我們必須從基於標準 Nodejs 的 statsd 用戶端轉向基於 C++ 的用戶端)。

若要增加緩衝區大小,請使用下列命令:

# echo "net.core.rmem_default=8388608" >> /etc/sysctl.conf
# echo "net.core.rmem_max=16777216" >> /etc/sysctl.conf
# sysctl -p

上述參數非常激進,並且會增加核心堆疊的記憶體使用量。您可能希望從較小的值開始,然後從該值開始增加 - 傳統的比率是max = default * 2

更多資訊請點這裡:https://www.ibm.com/support/knowledgecenter/en/SSQPD3_2.6.0/com.ibm.wllm.doc/UDPSocketBuffers.html

相關內容