性能监控之操作系统级别监控
性能监控是性能测试过程中非常重要的一个环节,当在压测过程中出现性能瓶颈时,需要综合详细的监控数据对问题进行分析。整个系统架构中的每一个环节都需要做监控(包括压力机、网络、各中间件、各服务器硬件资源等)。性能监控做好了,就能帮忙我们定位问题,找到系统的性能瓶颈。本篇记录下操作系统级别监控。
操作系统级别监控:
- CPU使用率:反映系统的CPU繁忙程度
- 内存使用率:反映系统内存的使用空间
- 网络IO:反映系统网络流量
- 磁盘IO:反映系统磁盘的读写状态
CPU监控-top
top命令中输入1,展示每个核CPU的使用情况
内存监控-free
free命令可以查看当前操作系统内存的使用情况
free -m 以MB为单位显示系统内存的使用情况,同理,可以GB为单位显示系统内存的使用情况。
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秒刷新一次
iowait :指示 cpu 用于等待 io 请求完成的时间
util:磁盘IO使用率,单位%,反映磁盘的繁忙程度,上限100%
r/s:每秒读请求数
w/s:每秒写请求数
rkb/s:每秒写磁盘字节数
wkb/s:每秒读磁盘字节数
磁盘空间监控-df
df命令可以查看当前系统磁盘空间的使用情况
命令:df -h
磁盘速度测试:
测试写: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次)
说明:
r:可执行队列的线程数
b:被阻塞的线程数
in:被处理过的中断数
cs:上下文切换,操作系统做上下文切换的次数。上下文频繁切换的话可能是有问题的(开发不断切换分支开发),可能阈值15K
swpd:空间如果没有波动,说明基本没有切换
si、so、bi、bo的关系如下:
综合监控工具-dstat
dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新。
dstat安装:yum install -y dstat
监控命令:dstat -tcmnd --disk-util
支持数据存储的监控工具-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、本地打开数据分析器如下:
5、点击Analyze nmon data按钮,加载下载下来的.nmon文件
6、分析器分析完成的结果如下:
Nmon文件需要关注的标签页:cpu_all、diskbusy、net、mem
7、命令./nmon 也可以实时交互式查看机器资源数据,比如输入C/D/N/M