网络性能debug参数整理

无线用户连接使用WiFi时有抱怨说,微信连接正常,但是有时候发送图片甚至短消息时出现转圈现象 。刷抖音、腾讯视频、看B站或是开启浏览器时部分图片打不开,开启某一个视屏时一直转圈等问题 。
出现这类问题时,首先需要排除网络问题,排除无线部分的干扰、有线部分的延迟 。分为几个部分进行调查
无线网络检查1. 连接无线后,通过ping检查无线到本地网关之间的丢包率、延迟、抖动等是否异常
(排除无线信道干扰,信号不好等因素导致的网络问题)

网络性能debug参数整理

文章插图
 
 
2. 检查DNS速度和应答
开启网址时,首先通过DNS获得目标IP地址,从而建立网络连接 。
有时候,网络速度慢有可能时因为上一层DNS解析服务器响应慢导致页面打开慢,可通过在网关设备上运行dig命令查看dns解析的响应时间, 如:
网络性能debug参数整理

文章插图
 
也可在终端上,抓取DNS报文计算请求与响应报文时间戳差来了解DNS响应状况 。
 
排除掉一些基本的网络问题后,若问题没能解决,就得从系统的角度去分析性能问题了 。
有些时候,需要收集一些现场的计数(可能会直接找到问题所在),但大多数情况都需要做进一步的模拟测试,以确认问题所在 。
 
现场信息收集现场参数检查:
1. 检查session情况(做NAT的网关设备一般为linux或者openwrt系统)
查看nf_conntrack_count计数 --- 当前连接数
cat /proc/sys/net/netfilter/nf_conntrack_count2. 查看nf_conntrack表最大连接数
cat /proc/sys/net/netfilter/nf_conntrack_max可通过如下命令临时修改:
sysctl -w net.netfilter.nf_conntrack_max=65536echo 16384 > /sys/module/nf_conntrack/parameters/hashsize注意:
hashsize = nf_conntrack_max / 4
或者:
 sysctl -w  net.ipv4.ip_conntrack_max=65536 
3. 查看nf_conntrack的TCP连接记录时间
cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established 
4. 通过内核参数查看命令,查看所有参数配置
sysctl -a | grep nf_conntrack 
5. 查看具体的session信息
cat /proc/net/nf_conntrack 
当获得一些现场信息后,需要在实验室环境构造类似的环境,模拟用户session变化情况(出现问题时,很大可能是因为资源死锁或限制导致了类似的性能,因此需要不断变化端口、IP、协议等参数,来逐步确认问题所在)
 
环境模拟在进行本地机器进行模拟测试时,可能需要调整一些系统参数,以便使作为辅测设备本身不成为瓶颈 。如:
 
  • 客户端连接数限制
单个压测客户端(一个IP地址)能承载的并发连接数是有限制的(其实是TCP/UDP的端口数目限制),这个上限是 65535(一般1024下的端口作为系统使用,所以65535只是一个最大上限),不可能更多 。
 
  • File Descriptors 限制
每一个建立的连接在 Linux 上都可视为一个打开的文件,会占用一个 File Descriptor,所以 ulimit 内各种限制中跟并发连接数最相关的是进程最大能打开的 File Descriptor数量 。
[root@kvmserver1 ~]# ulimit -n1024可根据设备内存状况,修改该数值
cat /etc/security/limits.conf
网络性能debug参数整理

文章插图
 
如修改为
*  soft   nofile 10000*  hard  nofile 10000普通用户默认使用的是 soft 限制,并且能够通过 ulimit -n 修改 soft 限制到最大跟 hard 一样,超过 hard 的话会报错:
ulimit: open files: cannot modify limit: Operation not permitted 
若使用的连接需要特别的多,可能会需要调整下面这几个值 。这几个值限制文件 Handle最大数量都很大,默认为 1024 * 1024,但也能调整的更大:
fs.file-max = 1000000fs.file-nr = 13920      0       1000000fs.nr_open = 1048576file-max 是 kernel 能分配的文件 Handle 最大数量
file-nar 有三个值,动态变化的,第一个值是当前已经分配的文件 Handle数量,第二个值是分配但是未使用的文件 Handle 数一般都是 0,最后一个实际就是 file-max 的值,表示系统最大分配的文件 Handle 数量 。当系统内文件 Handle 数超过 file-max 后,一样会报 Too many open files 。


推荐阅读