尽pipe调整,仍然显示从接收队列修剪的数据包

我已经做了下面的调整,试图消除packets pruned from receive queue中删除的packets pruned from receive queue ,我看到在netstat中,但我仍然看到每隔几分钟几百修剪:

  • net.core.rmem_max增加到33554432
  • 将net.core.rmem_default增加到12582912
  • net.core.wmem_max增加到16777216
  • net.ipv4.tcp_rmem增加到4096 12582912 33554432
  • net.core.netdev_max_backlog增加到5000
  • net.core.dev_weight增加到256
  • net.ipv4.tcp_max_syn_backlog增加到8192
  • 把net.core.netdev_budget增加到400
  • 启用rps和rfs,将rps_sock_flow_entries设置为32768,将rps_flow_cnt设置为8192(4个接收队列),并将rps_cpus与ff(所有内核)
  • net.core.somaxconn增加到8192
  • 将应用程序的rcv_buf大小设置为33554432
  • 设置应用程序的tcp连接监听积压为4096

这是一个在i3.2xlarge实例上运行碳caching,carbon-c-relay,httpd和memcached的石墨系统,networking吞吐量约为2.5亿字节/分钟。

CPU使用率是合理的,闲置在1%到30%之间波动,平均I / O等待约10%。

iostat -mx 1显示40%到95%的利用率波动。

vmstat显示等待运行时间的进程数在1和12之间波动。

free -m total used free shared buffers cached Mem: 61444 60976 467 0 7442 40391 -/+ buffers/cache: 13142 48302 Swap: 0 0 0

有关如何确定为什么数据包正在被修剪在约25 /分钟的速度和如何解决这个想法?