前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >服务器网络问题分析之丢包

服务器网络问题分析之丢包

作者头像
WindWant
发布2020-09-10 23:21:52
3.9K0
发布2020-09-10 23:21:52
举报
文章被收录于专栏:后端码事后端码事后端码事

一、关于 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、关于 ethtool:
  • 二、丢包查看
  • 三、error 查看:
  • 四、关于ring buffer:
  • 五、关于 netdev_max_backlog:
  • 六、关于 rp_filter 反向路由过滤导致丢包:
  • 七、关于 tcp_max_syn_backlog 半连接队列:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档