性能测试系列(二)
性能测试之性能分析命令
1.CPU分析
a.cpu基本信息
命令:lscpu
- Cpu架构 64 位
- Cpu 核心数 6
- NUMA UMA节点数为 2个(显示值加 1)
- Cpu的核心频率
- 说明此服务器为虚拟机
- 此服务器的 cpu使用的是 使用的是 numa node0的 0-5号 cpu
b.vmstat工具得使用
- 命令:vmstat 1 60 > /tmp/cpu.txt
- 说明:每秒采样1次,共采集100次
- 格式化显示: cat /tmp/cpu.txt|column -t
1)procs
- a.r 列表示运行和等待 CPU时间片的进程数,这个值如果长期大于系统 时间片的进程数, 就说明CPU资源不足,可以考虑增加CPU;
- b.b列表示在等待资源得进程数,比如正在等待I/0或者内存交换等
2)memory
- a.swpd:表示切换到内存交换区得内存数据量(以KB为单位)。如果swpd得值不为0或者比较大,而且si,so值长期为0,那么这种情况一般不用担心,不会影响系统性能;
- b.free:表示当前空闲得物理内存数量(以KB为单位)
- c.buff:表示buffers cache得内存数量,一般对块设备得读写才需要缓冲;
- d.cache:表示page cached得内存数量,一般作文件系统得cached,频繁访问得文件都会被cached。如果cached值比较大,就说明cached文件数较多。如果次试IO中得bi比较小,就说明文件系统效率比较好;
3)swap
- a.si:表示由磁盘调入内存,也就是内存进入内存交换区得数量;
- b.so:表示由内存调入磁盘,也就是内存交换区进入内存得数量;
一般来说:si,so得值都为0,如果si,so得值长期不为0,则表示系统内存不足,需要考虑是否增加系统内存
4)IO
- a.bi:表示从块设备读入得数据总量(即读磁盘,单位kb/s);
- b.bo:表示写入到块设备数据总量(即写磁盘,单位kb/s);
一般来说:这里设置的bi+bo参考值为参考值为1000,如果超过1000,而且wa值比较大,则表示系统磁盘IO性能瓶颈。(需要根据具体得硬件性能评估)
5)system
- a.in:表示在某一时间间隔中观察到得每秒设备中断数;
- b.cs:表示每秒生产得上下文切换次数;
一般来说:上面这两个值越大,会看到内核消耗得cpu时间就越多
6)CPU
- a.us:显示了用户进程消耗cpu得时间百分比;
- b.sy:显示了内核进程消耗cpu得时间百分比;sy得值比较高时,就说明内核消耗得cpu时间多;如果us+sy超过80%,就说明cpu得资源存在不足。
- c.id:显示了cpu处在空闲状态得时间百分比;
- d.wa:显示IO等待所占用cpu时间百分比。wa值越高,说明io等待越严重。如果wa值超过20%,说明IO等待严重
- e.st:虚拟机占用的时间百分比(一般不关注)
经验总结:
- cpu一般被充分利用的大概的范围
us:65% - 70%
sy:30% - 35%
id:0% - 5% - proce中的r运行队列数不要超出每个处理器3个可运行状态线程的限制
- sy如果比较高一般时in(中断)和cs(上下文切换),可根据情况开启RPS或者减少应用的线程池
c.mpstat工具得使用
- 命令:mpstat -P ALL 1
- 说明:每秒采样1次CPU各个核心的使用资源情况