zoukankan      html  css  js  c++  java
  • 服务器网络问题分析之丢包

    一、关于 ethtool

    • 获取设备信息及诊断信息

    • 获取设备统计数据

    • 控制因特网设备速率(speed)、全双工(duplex)、自动协商(autonegotiation)、流控(flow control)

    • 控制 checksum offload 及其它设备 offload

    • 控制 DMA ring sizes 及中断 moderation

    • multiqueue 设备的接收队列选择

    • 闪存固件升级

    二、丢包查看

    ifconfig:

     

    或:cat /proc/net/dev

    三、error 查看:

    ethtool -S  eth0 | grep errors

     

    根据相应的错误进行处理。

    四、关于ring buffer:

    网络数据传输:数据帧传输,由网卡读取并放入设备缓冲区ring buffer,当网络数据包到达的速率快于内核处理的速率时,ring buffer很快会被填满,新来的数据包将被丢弃。

    查看 ring buffer 设置:ethtool -g eth0:

    设置 ring buffer :ethtool -G eth0 rx 新值。

    五、关于 netdev_max_backlog:

    netdev_max_backlog是内核从网卡收到数据包后,交由协议栈(如IP、TCP)处理之前的缓冲队列。每个CPU核都有一个backlog队列,当协议栈处理速度满足不了接收包速率时会发生丢包。

    查看数据处理情况:/proc/net/softnet_stat

    行:一行代表一个cpu

    列:第一列为接收的总包数;第二列为由于溢出丢弃的包数。

    查看当前 netdev_max_backlog:cat /proc/sys/net/core/netdev_max_backlog

    设置netdev_max_backlog:sysctl -w net.core.netdev_max_backlog=4096 或者 echo "4096"  > /proc/sys/net/core/netdev_max_backlog

    六、关于 rp_filter 反向路由过滤导致丢包:

    反向路由过滤机制是Linux通过反向路由查询,检查收到的数据包源IP是否可路由(Loose mode)、是否最佳路由(Strict mode),如果没有通过验证,则丢弃数据包,设计的目的是防范IP地址欺骗攻击。rp_filter提供了三种模式供配置:

    0 - 不验证

    1 - RFC3704定义的严格模式:对每个收到的数据包,查询反向路由,如果数据包入口和反向路由出口不一致,则不通过

    2 - RFC3704定义的松散模式:对每个收到的数据包,查询反向路由,如果任何接口都不可达,则不通过

    查看设置:cat /proc/sys/net/ipv4/conf/eth0/rp_filter

    设置:所有不验证:sysctl -w net.ipv4.conf.all.rp_filter=0 | 网卡eth0不验证:sysctl -w net.ipv4.conf.eth0.rp_filter=2

    七、关于 tcp_max_syn_backlog 半连接队列:

    TCP传输中服务器收到SYN包但还未完成三次握手的连接队列,服务器保持的半连接数超过tcp_max_syn_backlog,则丢弃新包。

    查看:/proc/sys/net/ipv4/tcp_max_syn_backlog

    设置:sysctl -w net.ipv4.tcp_max_syn_backlog=xxxxx

    查看是否有丢弃情况:dmesg | grep "TCP: drop open request from"

    查看队列使用情况(查询SYN_RECV状态):netstat -ant|grep SYN_RECV|wc -l

  • 相关阅读:
    剑指OFFER之合并有序链表(九度OJ1519)
    剑指OFFER之反转链表(九度OJ1518)
    剑指OFFER之链表中倒数第k个节点(九度OJ1517)
    一分钟教你在博客园中制作自己的动态云球形标签页
    剑指OFFER之调整数组顺序使奇数位于偶数前面找(九度OJ1516)
    剑指OFFER之打印1到最大的N位数(九度OJ1515)
    剑指OFFER之矩形覆盖(九度OJ1390)
    剑指OFFER之数值的整数次方(九度OJ1514)
    剑指OFFER之变态跳台阶(九度OJ1389)
    剑指OFFER之二进制中1的个数(九度OJ1513)
  • 原文地址:https://www.cnblogs.com/niejunlei/p/12704929.html
Copyright © 2011-2022 走看看