性能监控是性能测试过程中非常重要的一个环节,当在压测过程中出现性能瓶颈时,需要综合详细的监控数据对问题进行分析。整个系统架构中的每一个环节都需要做监控(包括压力机、网络、各中间件、各服务器硬件资源等)。性能监控做好了,就能帮忙我们定位问题,找到系统的性能瓶颈。本篇记录下操作系统级别监控。

操作系统级别监控:

  • CPU使用率:反映系统的CPU繁忙程度
  • 内存使用率:反映系统内存的使用空间
  • 网络IO:反映系统网络流量
  • 磁盘IO:反映系统磁盘的读写状态

 

CPU监控-top

us:用户进程,应该是更高的占比,占到us+sy之和的70%以上

sy:系统进程,占到us+sy之和的30%以下

id:空闲率    1-id =繁忙时间

wa:等待进程,可能是等待io/磁盘、内存、网卡

系统指标监控 系统性能监控指标_监控工具

 top命令中输入1,展示每个核CPU的使用情况

系统指标监控 系统性能监控指标_数据_02

 

内存监控-free

free命令可以查看当前操作系统内存的使用情况

free -m 以MB为单位显示系统内存的使用情况,同理,可以GB为单位显示系统内存的使用情况。

系统指标监控 系统性能监控指标_物理内存_03

 free命令从两个维度统计了内存的使用情况。

第一行Mem:从操作系统角度统计内存的total、used、free、buffers、cached

total:系统总的可用物理内存大小,total=used + free + buff/cache

used:已使用的物理内存大小

free:真正还未使用的物理内存大小

shared:被共享使用的物理内存大小

buff:被buff使用的物理内存大小。buffer是即将写入到磁盘里面的内容,是写操作的缓存

cache:被cache使用的物理内存大小。已经从磁盘读出来的内容,放在cache里面,即将读到内存中,是读操作的缓存

available:应用程序任务可以使用的内存大小

 第二行Swap:交换空间的使用信息

当系统内存不足时,把内存中的一部分数据临时放到swap中,会使用交换空间

 

磁盘IO监控-iostat

iostat可以监控磁盘io

安装:yum install sysstat

命令:iostat -x -k 1

-x:展示磁盘的扩展信息
-k:以k为单位展示磁盘数据
1:每1秒刷新一次

系统指标监控 系统性能监控指标_监控工具_04

iowait :指示 cpu 用于等待 io 请求完成的时间

util:磁盘IO使用率,单位%,反映磁盘的繁忙程度,上限100%

r/s:每秒读请求数

w/s:每秒写请求数

rkb/s:每秒写磁盘字节数

wkb/s:每秒读磁盘字节数

 

磁盘空间监控-df

df命令可以查看当前系统磁盘空间的使用情况

命令:df -h

系统指标监控 系统性能监控指标_监控工具_05

磁盘速度测试:

测试写:dd if=/dev/zero of=test bs=8k count=1000000 oflag=direct

测试读:dd if=test bs=8k of=/dev/null count=1000000 iflag=direct

参数说明:

1)dd用于复制,从if读出,写到of;

2)/dev/zero(产生字符)不产生IO,是一个输入设备,可用它来初始化文件。该设备无穷尽地提供0,可以用于向设备或文件写入字符串0。因此可以用来测试纯写速度;

3)/dev/null是空设备,也称为位桶(bit bucket)、回收站、无底洞,可以向它输出任何数据。任何写入它的输出都会被抛弃。

4)bs是每次读或写的大小,即一个块的大小,count是读写块的数量;

5)oflag指定写的方式

6)iflag指定读的方式

7)写速度测试会在测试目录下生成文件test,文件大小与复制大小一致,测试完记得删除

 

综合监控工具-vmstat

vmstat命令综合了CPU、进程、内存、磁盘IO等信息

命令:vmstat 1 (每隔1秒采集1次)

系统指标监控 系统性能监控指标_数据_06

说明:

  r:可执行队列的线程数

  b:被阻塞的线程数

  in:被处理过的中断数

  cs:上下文切换,操作系统做上下文切换的次数。上下文频繁切换的话可能是有问题的(开发不断切换分支开发),可能阈值15K

  swpd:空间如果没有波动,说明基本没有切换

si、so、bi、bo的关系如下:

系统指标监控 系统性能监控指标_物理内存_07

bi:数据从文件系统或者swap进入内存

bo:从内存写进文件系统或者SWAP

swap-si:从内存角度来看,从swap进入内存

swap-so: 从内存进入swap

  

综合监控工具-dstat

dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新。

dstat安装:yum install -y dstat

监控命令:dstat -tcmnd --disk-util

系统指标监控 系统性能监控指标_数据_08

 

支持数据存储的监控工具-nmon

nmon是Linux性能监控工具,可以实时展示系统性能情况,也可以将监控数据写入文件中,并使用nmon分析器做数据展示

nmon文件和分析器链接:https://pan.baidu.com/s/1FUI8gzndc74k0x5lePkhKQ,提取码:qajs 

操作步骤如下:

1、nmon文件上传到服务器,

2、执行命令:./nmon -ft -s 5 -c 1000(每隔5秒采集一次,采集1000次)上述命令执行后会在服务器上生成.nmon文件

3、将服务器上.nmon文件下载到本地

4、本地打开数据分析器如下:

系统指标监控 系统性能监控指标_数据_09

5、点击Analyze nmon data按钮,加载下载下来的.nmon文件

6、分析器分析完成的结果如下:

系统指标监控 系统性能监控指标_数据_10

Nmon文件需要关注的标签页:cpu_all、diskbusy、net、mem

7、命令./nmon 也可以实时交互式查看机器资源数据,比如输入C/D/N/M

系统指标监控 系统性能监控指标_系统指标监控_11