在上一篇中我们使用的操作系统的命令来对系统资源使用情况进行监控,在这一篇中补充一下用其它工具vmstat、sar和dstat来对操作系统进行监控。
1.综合监控工具-vmstat
vmstat命令综合了CPU、进程、内存、磁盘IO等信息。
执行命令:
vmstat 1
用这个命令查看相当于我们上一篇中各个手动命令的汇总,指标名称都是一样的,可以对照着看一下,在这里我们需要重点监控si(swap in)和so(swap out)这两个指标,如果当它们的数据不为0的时候,则说明当前内存已经不够了,已经在启用swap转移内存释放更多内存,可以结合free -m命令来使用。
2.网络监控工具-sar
2.1.用sar进行监控
命令:
sar -n DEV 1 1000
- 1:每1秒刷新1次;
- 1000:一共统计1000次;
网络数据指标如下所示,其中:
- eth0代表的是网卡名称(一般的网卡名称都是eth开头的);
- rxKB/s是服务器每秒接受的流量;
- txKB/s是服务器每秒发送的流量;
2.2.如何判断当前网络是否达到瓶颈
在解决这个问题之前,我们要先弄清楚jmeter发请求进行压力测试的时候都经过了哪些环节,其网络拓扑图如下。
解决方法:
- 监控服务器网卡上的流量,包括接收(上行),发送(下行),可以通过sar命令;
- 找到当前网络环境中的上限;
- 对比当前值和上限值;
3.超级监控工具-dstat
dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新,dstat需要先进行安装。
执行命令安装:
yum install -y dstat
监控命令:
dstat -tcmnd --disk-util
可以实时看到cpu、内存、网络和磁盘多个维度的实际使用情况,如下所示。
3.1.将日志写入到文件中
在做稳定性测试的时候,我们需要长时间运行但是又不能时时刻刻盯着系统,则可以将日志都写入到指定文件,然后在需要看的时候打开文件进行检查。
执行命令,将日志写入到当前目录下a.txt文件中。
nohup dstat -tcmnd --disk-util > a.txt &
通过cat命令查看历史日志:
cat a.txt
最后需要注意的是监控命令在后台打开之后会一直运行,一定要记得杀掉进程,时间久了也会形成一个很大的文件占用磁盘。
查找进程:
ps -ef | grep dstat
杀掉进程:
kill -9 进程号
Ps:下一篇将会使用支持数据存储的监控工具-nmon来监控操作系统,可以生成多维度的报表数据。