linux – Netstat -s显示(并且正在增长)“从接收队列中删除的数据包”和“数据包在接收队列中崩溃”

我们看到以下内容
[root@primary data]# netstat -s | grep buffer ; sleep 10 ; netstat -s | grep buffer
    20560 packets pruned from receive queue because of socket buffer overrun
    997586 packets collapsed in receive queue due to low socket buffer
    20587 packets pruned from receive queue because of socket buffer overrun
    998646 packets collapsed in receive queue due to low socket buffer
[root@primary data]#

请记住,以上是一个刚刚重新启动的盒子……大约1小时的正常运行时间.我们最近有一个盒子上升了2个月,这些反击将达到数百万(XXX百万).

我们尝试过更改各种sysctl变量……

以下是我认为相关的sysctl变量:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

有没有人知道如何解决这些修剪的pakcets由于套接字缓冲区溢出/数据包colapsing(我知道它不像修剪的数据包一样糟糕)?

谢谢.

解决方法

从您提供的信息判断,并且由于您似乎已经增加了缓冲区,问题很可能在于您的应用程序.这里的基本问题是即使操作系统接收到网络数据包,它们的处理速度也不够快,因而填满了队列.

这并不一定意味着应用程序本身太慢,它也可能因为该机器上运行的其他进程太多而无法获得足够的cpu时间.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...