首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >netdata ipv4 UDP错误

netdata ipv4 UDP错误
EN

Server Fault用户
提问于 2018-02-28 17:20:36
回答 1查看 5.8K关注 0票数 2

我最近在我拥有的Amazon实例上安装了网数据。Netdata非常酷,很好的图表/图表,安装起来非常容易(与其他人相比)。

每天我都会收到一些信息,比如

代码语言:javascript
复制
1m ipv4 udp receive buffer errors = 9 errors
number of UDP receive buffer errors during the last minute

几分钟后,一条恢复信息。在这一天,UDP/TCP可能会显示出数百个错误。我还在家中运行的服务器上看到了类似的模式。

多年来,我使用了其他监视包,从未见过此类错误。我怀疑某些级别的错误,特别是在UDP上,是正常的,对吗?这是预期的行为吗?我能关掉这些警报的监控吗?

我已经在家里搬到了机器上的第二个NIC,在行为上没有必要的改变。

这个中等规模环境中可接受的以太网错误数?表明我可能有一个严重的问题,我当然可以在家里尝试其他的网卡。但是,我会在我的EC2实例上解决这个问题吗?

还值得注意的是,logwatch报告根本没有问题,但可能不会为此进行配置。

谢谢你的指导。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-02-28 20:25:45

netdata使用statsd作为度量收集系统。这是一种基于UDP的协议,它速度快、效率高,但以较高的速率可以溢出入口节点的recv_buffer。默认的接收缓冲区约为1M -因此,如果statsd代理无法快速使用以防止缓冲区被填满,内核将丢弃数据报。

简单的解决方案是将recv缓冲区增加到更大的大小以处理峰值--这通常解决了UDP缓冲区溢出的问题。如果您仍然始终如一地看到上面的日志,那么您将需要增加机器的CPU容量,或者移动到一个性能更好的statsd实现(我们必须从标准的基于nodejs的statsd客户机转移到一个基于C++的statsd客户机)。

若要增加缓冲区大小,请使用以下命令:

代码语言:javascript
复制
# 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

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/899364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档