我们想了解net.core.netdev_max_backlog
内核值非常低且不推荐的方面是什么
在我们的 Linux RHEL 机器上,此参数的值为1000
因为我们的机器是 HADOOP 机器(BIGDATA 集群)
我们看到最佳实践是将价值增加到65536
如上所述:
https://datasayans.wordpress.com/2015/11/04/performance-kernel-tuning-for-hadoop-environment/
背景:
内核参数“netdev_max_backlog”是接收队列的最大大小。收到的帧从网卡上的环形缓冲区中取出后,将存储在此队列中。对高速卡使用高价值以防止丢失数据包。在 SIP 路由器等实时应用中,长队列必须分配高速 CPU,否则队列中的数据将过期(旧)。
那么 - 当这个内核参数的值不足时,可能是什么方面?
其他 - 参考 - https://gist.github.com/leosouzadias/e37cd189794bb78de502ac25cb605576
https://www.senia.org/2016/02/28/hadoop-and-redhat-system-tuning-etcsysctl-conf/
https://mapredit.blogspot.com/2014/11/hadoop-server-performance-tuning.html
https://gist.github.com/phaneesh/38b3d80b38cc76abb1d010f598fbc90a
运行以下命令:
以下将是输出:
02fdffa5是数据包计数 000000aa是已丢弃的数据包数
运行命令并通过将值转换为十进制来查看已丢弃的数据包数量是否增加。如果数据包的数量增加了,则增加到
net.core.netdev_max_backlog
适当的值。您可以通过运行以下命令临时增加该值:
您可以通过运行以下命令使该值永久化:
此外,65536 的值对于正常的系统性能来说是多余的并且是不必要的。 您显然应该更改
X
为您希望使用的值。如果 softnet_stat 的第二和第三列没有增长,那么有必要增加
net.core.netdev_max_backlog
资料来源:如何调整
net.core.netdev_max_backlog
和net.core.netdev_budget
sysctl 内核可调参数?