性能测试分析
性能分析思路:
1.整体系统CPU利用率
2.内存利用率
3.磁盘I/O的利用率和延迟
IO的TPS,平均I/O数据,平均队列长度,平均服务时间,平均等待时间,IO利用率
4.网络利用率:
网络是否可达,防火墙是否开启、端口的访问、带宽是否被限制、路由的寻址、网络的延时
5.数据库:
数据库cpu、内存、是否有慢sql,应用程序获取sql结果是否OK
CPU的定位分析:
命令:vmstat,sar,dstat,mpstat,top,ps
模块 | 类型 | 度量方法 | 衡量标准 |
---|---|---|---|
CPU | 使用情况 | 1.通过vmstat 统计l-id的计数 2.通过sar -u统计l-%idle的计数 3.通过dstat命令统计l-idl的计数 4.通过mpstat -P ALL统计l-%idle的计数 5.通过ps统计CPU的计数 |
注意>=50% 告警>=70% 严重>=90% |
CPU | 满载 | 6.vmstat的r计数>cpu逻辑课数 7.sar -q”runq-sz”>cpu逻辑课数 8.dstat-p“run”>cpu逻辑课数 |
运行的队列大于1时,证明已经有一定的负载了,不过这个不绝对 |
CPU | 错误 | 9.通过perf工具去捕获处理器错误信息 | 需处理器支持 |
内存的定位分析:
命令:vmstat sar vstat free top ps. 等
模块 | 类型 | 度量方法 | 衡量标准 |
---|---|---|---|
内存 | 使用情况 | Free命令查看使用情况 vmstat 命令查看使用情况 Sar -r 命令查看使用情况 Ps 命令查看使用情况 |
注意>=50% 告警>=70% 严重>=90% |
内存 | 满载 | vmstat的si/so比例辅助swaps和free sar -W查看次缺页数 查看内核日志有无oom机制kill进程dmesg |
grep killed |
内存 | 错误 | 查看内核有无physical failures通过工具如vglgrind 等进行检查 | 有计数 |
网络定位分析:
模块 | 类型 | 度量方法 | 衡量标准 |
---|---|---|---|
网络 | 使用情况 | Sar -n DEV 的收发计数大于网卡上限 ifconfig RX/TX 带宽超过网卡上限 cat /proc/net/dev的速率超过上限 nicstat 基本满负荷 |
收发包的吞吐率达到网卡上限有延迟有丢包有阻塞 |
网络 | 满载 | ifconfig dropped 有计数 netstat -s “segments retransmitted ”有计数 Sar -n EDEV rxdrop txdrop 有计数 |
统计的丢包有计数说明满了 |
网络 | 错误 | ifconfig “errors”Netstat -I “RX-ERR”/“TX_ERR”Sar -n EDEV,”roer/s””toer/s”Ip -s link, “errors" | 有计数 |
IO的定位分析:
df -i |head -1;df -i|grep -v '^Filesystem'|awk -F' *|%' '{if($5>=10)print $0}' 查看磁盘利用率,如果达到100%,所以有磁盘在占用
模块 | 类型 | 度量方法 | 衡量标准 |
---|---|---|---|
IO | 使用情况 | iostat -xz, “%util”Sar -d “%util”Iotop的利用率很高 Cat /proc/pid/sched |
grep iowait |
IO | 满载 | Iostat -xnz l,”avgqu-sz”>1 Instate await>70 |
IO已经有满载嫌疑 |
IO | 错误 | dmesg 查看io错误 | 有信息 |