分析GNU / Linux上传入的TCP数据包丢弃

我使用Ubntu 12.04服务器作为网关/路由器.该服务器有两个用于LAN和WAN接口的NetXtreme BCM5721千兆以太网PCI Express卡. Opennms监控软件显示WAN(ISP)接口上的传入数据包丢弃. ISP通过SDH / SONET环提供直接以太网连接.但是我没有在LAN接口上看到任何数据包丢弃.这是WAN接口图:

是否有任何工具/命令可以发现导致此类数据包丢弃的原因.是否有可能知道ISP方面的某些错误配置是否会导致此类问题.

ifconfig输出:

eth1      Link encap:Ethernet  HWaddr **:**:**:**:63:5d  
          inet addr:***.***.4.130  Bcast:***.***.4.131  Mask:255.255.255.252
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:865089489 errors:0 dropped:596 overruns:0 frame:3
          TX packets:498072410 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1092458492329 (1.0 TB)  TX bytes:48179244881 (48.1 GB)
          Interrupt:17

解决方法

ethtool命令用于向驱动程序查询NIC报告的统计信息. ethtool -S ethX将显示特定卡的统计信息,您可以看到丢弃的位置.

最常见的是你会丢失环形缓冲区中的数据包(报告为像“discard”“fifo”“bufs”这样的数据,因卡而异)你可以通过使用ethtool -g增加环形缓冲区来解决这个问题.请参阅man ethtool了解更多信息.

netstat命令用于查询内核的网络堆栈. netstat -s将向您显示统计信息,您可以查看是否丢失了积压(在NIC之后但在套接字缓冲区之前)或套接字缓冲区(太小的缓冲区或缓慢的应用程序)或其他地方的流量.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format='{{.LogPath}}' <container_name> 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户