涉及主机调优、网络性能调优、网络问题排查等方向,包含工具和原理的介绍

  1. 了解ifconfig中的参数信息

    • dropped与overruns的区别 dropped,表示这个数据包已经进入到网卡的接收缓存fifo队列,并且开始被系统中断处理准备进行数据包拷贝(从网卡缓存fifo队列拷贝到系统内存),但由于此时的系统原因(比如内存不够等)导致这个数据包被丢掉,即这个数据包被Linux系统丢掉。 overruns,表示这个数据包还没有被进入到网卡的接收缓存fifo队列就被丢掉,因此此时网卡的fifo是满的。为什么fifo会是满的?因为系统繁忙,来不及响应网卡中断,导致网卡里的数据包没有及时的拷贝到系统内存,fifo是满的就导致后面的数据包进不来,即这个数据包被网卡硬件丢掉。所以,个人觉得遇到overruns非0,需要检测cpu负载与cpu中断情
    • The Missing Man Page for ifconfig
    • RX error overrun
  2. 能够查询和修改网卡驱动参数及硬件配置

    • ethtool命令, 参考链接
    • 读懂并修改网卡 offload , RX/TX checksum, scatter, gather等配置, 参考链接
  3. 深层次的理解网卡各类参数的意义,理解linux网络堆栈的排队机制

  4. 了解网络内核参数

  5. Wireshark/Tshark相关网络工具脚本汇总

    • Tools
    • 很实用,Wireshark/Tshark用户肯定需要知道和了解的
  6. netsniff
    netsniff 套件中包含netsniff, trafgen, ifpps等工具;该套件是一个高性能的网络工具,功能丰富

    • netsniff(数据包捕获/回放) netsniff-ng --in em3 --out /home/em3.pcap --silent --ring-size 500MiB --prio-high --verbose --bind-cpu 0
    • trafgen(流量生成) trafgen --cpp --dev ens33 --conf synflood.trafgen --verbose
    • ifpps (实时流量查询) ifpps --dev ens160
  7. 其他

    • 实时流量查询命令, vnstat
    • 打印出网卡p5p2内核ring buffer, dmesg | grep p5p2
    • 查看网卡流量信息, cat /proc/net/dev
    • 查看网络内核参数设置,sysctl -a | grep net.core
    • 查看网卡PCI信息, lspci -vvv | grep -i ethernet -A 5