最近业务上老有问题,查看发现overruns值不断增加,学习了一下相关的知识。

发现数值也在不停的增加。G 了一下,发现这些 errors, dropped, overruns 表示的含义还不大一样。

eth2 Link encap:Ethernet HWaddr 00:8C:FA:F1:DA:78

inet addr:10.249.2.112 Bcast:10.249.2.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:26191508237 errors:0 dropped:0 overruns:45732243 frame:0

TX packets:20141298524 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:4684832167216 (4.2 TiB) TX bytes:4670328443919 (4.2 TiB)

Memory:c7200000-c7280000

RX errors:表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。

RX dropped:表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。

RX overruns:表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs 分布的不均匀(都压在 core0),没有做 affinity 而造成的丢包。

RX frame:表示 misaligned 的 frames。

1、先查看硬件情况

一台机器经常收到丢包的报警,先看看最底层的有没有问题:

ethtool eth2 | egrep 'Speed|Duplex'

Speed: 1000Mb/s

Duplex: Full

ethtool -S eth2 | grep crc

rx_crc_errors: 0

Speed, Duplex, CRC 之类的都没问题,基本可以排除物理层面的干扰。

2、通过 ifconfig 可以看到 overruns 字段在不停的增大

for i in seq 1 100; do ifconfig eth2 | grep RX | grep overruns; sleep 1; done

这里一直增加

RX packets:26191785302 errors:0 dropped:0 overruns:45732243 frame:0

3、查看buffer大小

找了一些国外的文章,可以通过ethtool来修改网卡的buffer size ,首先要网卡支持,我的服务器是是INTEL 的1000M网卡,我们看看ethtool说明。

-g –show-ringQueries the specified ethernet device for rx/tx ring parameter information.

-G –set-ringChanges the rx/tx ring parameters of the specified ethernet device.

查看当前网卡的buffer size情况ethtool -g eth0

Ring parameters for eth0:

Pre-set maximums:

RX: 4096RX Mini: 0

RX Jumbo: 0

TX: 4096

Current hardware settings:

RX: 256

RX Mini: 0

RX Jumbo: 0

TX: 256

4、修改buffer size大小

ethtool -G eth2 rx 2048

ethtool -G eth2 tx 2048

查看丢包

[root@appserver1 network-scripts]# cat /proc/net/dev | column -t

Inter-| Receive | Transmit

face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

lo:1697064305645 4937104295 0 0 0 0 0 0 1697064305645 4937104295 0 0 0 0 0 0

eth0:72829268758 343814516 0 21338 0 0 0 9764241 74743576507 418943369 0 0 0 0 0 0

eth1:5826509023 48719872 0 0 0 0 0 11358883 127451707 1107964 0 0 0 0 0 0

eth2:4684766978372 26191366713 0 0 45732243 0 0 278436828 4670300836866 20141168183 0 0 0 0 0 0

eth3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

bond0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

[root@appserver1 network-scripts]# netstat -i | column -t

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

eth2 1500 0 26191244868 0 0 45732243 20141056331 0 0 0 BMRU

lo 16436 0 4937053994 0 0 0 4937053994 0 0 0 LRU

问题:接受队列溢出产生错误,当抵达的包多于内核可以处理的包时,计算机会产生漫溢(overruns)。输入队列达到其上限(max_backlog)时,多抵达的那些包会全部被丢弃掉。@读者 achlice 补充:

补充一下, 对于overrun的包,修改了ring buffer之后,重启主机后会失效,1,需要将配置添加到网卡配置文件例如 rhel系列是在/etc/sysconfig/network-scripts/ifcfg-* , 例如网卡是enp3, 在 ifcfg-enp3 配置文件添加 'ETHTOOL_OPTS='-G ${DEVICE} rx 4096; -A ${DEVICE} autoneg on' 2,如果网卡配置ETHTOOL_OPTS 参数不生效,请确保initscripts 这个软件包是最新版本.

linux 检查系统丢包,Linux 下网络丢包问题处理相关推荐

  1. tcpdump抓两个网卡的包_Linux下网络抓包命令tcpdump详解(在wireshark中看包)

    tcpdump -i eth0 -c 2000 -w eth0.cap tcpdump采用命令行方式,它的命令格式为: tcpdump[ -adeflnNOpqStvx ] [ -c 数量 ] [ - ...

  2. Linux下网络丢包故障定位

    Linux下网络丢包故障定位 | syxdevcode博客转载: 云网络丢包故障定位全景指南 硬件网卡丢包Ring Buffer溢出 如图所示,物理介质上的数据帧到达后首先由NIC(网络适配器)读取, ...

  3. 车子Linux系统,Linux车载系统Automotive Grade Linux

    [中关村在线软件资讯]7月8日消息:Linux在车载系统上,并不想落后于苹果.谷歌等竞争对手,这不,Linux最近也推出了可定制的车载系统平台--Automotive Grade Linux,旨在建立 ...

  4. linux下抓包工具 wireshark,网络抓包工具Wireshark下载安装使用详细教程

    叮嘟!这里是小啊呜的学习课程资料整理.好记性不如烂笔头,今天也是努力进步的一天.一起加油进阶吧! 一.关于Wireshark Wireshark(前身 Ethereal)是一个网络包分析工具.该工具主 ...

  5. linux mtr运行脚本,使用mtr测试网络丢包率和平均延时的脚本实例

    A h4u}+XLFSj0#!/bin/bash r+Q0hW m KH0# 测试网络丢包率和平均延时,注意变量clr和cdt的赋值,不同版本的mtr对应的字段位置不同51Testing软件测试网yS ...

  6. linux检测系统是否被入侵(下)

    检查系统的异常文件 查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以.为名的文件夹具有隐藏属性 > ls -al 查找1天以内被访问过的文件 > find /opt -inam ...

  7. linux检查系统硬件信息命令,Linux查看系统信息(硬件信息, 系统设置信息等) 命令 | Soo Smart!...

    Linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有 ...

  8. linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...

    linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并作了分类,实例解说.html cpu lscpu命令,查看的是cpu的统计信息.linux blue@ ...

  9. linux双系统切换时间,linux与windows双系统下时间不一致的解决办法

    装完win7和Linux双系统后,进入Linux后再进入Windows,你会惊奇的发现时间不对了,差了有8个小时. 导致这样的原因是Winows和 Linux 对硬件时间的处理方法不同,Windows ...

  10. Windows改装成Linux,Windows系统改装成Linux系统

    说下背景:上级领导要求的将一台windows系统的电脑改装成Linux系统的电脑.弄了一天半的时间终于弄好了. 下面时操作过程以及自己遇到的一些坑. 一.制作一个启动盘 使用一个大于8G的U盘制作启动 ...

最新文章

  1. DOM渲染的详细过程
  2. strcpy和memcpy的区别(转)
  3. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 1 Convolutional Neural Networks: Step by Step
  4. 推自己的镜像到网易云
  5. django orm mysql_Django之ORM操作Mysql
  6. 西部数码linux云服务器,linux云服务器选择哪个版本
  7. synchronized实现
  8. html设置为壁纸win10,Win10让桌面壁纸自动换的设置方法(图文教程)
  9. 学习:使用python+selenium实现路由器登陆账号密码爆破
  10. 详解三道一维的动态规划算法题
  11. 网络安全之密码安全基础
  12. Python 字符串前加f,r,u,b的含义
  13. 运营_APP的常见盈利模式
  14. 【面经问题总结】小米日常实习 一面
  15. 原生JS实现公告栏文字横向滚动(通告栏)
  16. ts报错:Object is possibly ‘undefined‘.Vetur(2532)
  17. uniapp下页面布局分析三——元素垂直居中
  18. 背景建模方法《python图像处理篇》
  19. Spring boot + Mybatis动态多数据源实现
  20. Ae 入门系列之十三:表达式

热门文章

  1. grep匹配单引号('),惰性匹配(.*?)
  2. 1068. Find More Coins (30)搜索题
  3. 当新建css样式时默认名,网页制作考题2
  4. 解析常见网络钓鱼攻击方法
  5. 爬虫 and 数据分析 | 一万条b站评论看工作细胞
  6. 在RK3066/RK3188电视棒上安装ubuntu(MK802III/MK808B/MK809/MK908/UG802/QC802
  7. 计算机综述论文能发期刊吗,计算机核心期刊哪些好发
  8. Java 11中文版 API参考文档(收藏)
  9. pc自建服务器传输3ds,新3DS自带的PC管理MicroSD 最强无线传输软件
  10. 求出数组最大值的方法