性能测试系列(二)

性能测试之性能分析命令

1.CPU分析

a.cpu基本信息

命令:lscpu
性能测试系列(二)

  1. Cpu架构 64 位
  2. Cpu 核心数 6
  3. NUMA UMA节点数为 2个(显示值加 1)
  4. Cpu的核心频率
  5. 说明此服务器为虚拟机
  6. 此服务器的 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各个核心的使用资源情况
    性能测试系列(二)