在linux系统环境的测试开发过程中,我们常常需要评估系统性能,尤其在性能测试工作中,我们需要通过系统资源的监控,从而分析定位系统的性能瓶颈。
首先,我们要知道从哪些维度来评估系统的性能好坏:
- CPU利用率及负载
- 内存利用率
- 磁盘I/O利用率
- 网络利用率
如何监控上述系统资源的使用情况,有哪些常用的命令和工具呢。下面,就给大家罗列几个工作最常用的性能监控命令及工具,希望能对大家的工作有帮助。
1.vmstat
全称是Virtual Meomory Statistics(虚拟内存统计),对linux内存、进程及CPU活动进行监控,只能对系统整体情况进行统计。
常用参数:
- -s:显示内存相关统计信息,
- -a:显示活跃和非活跃内存
- -d:显示磁盘相关统计信息
- -t:显示时间
2.top
top是一个功能强大的性能监控工具,是linux使用者最常使用系统命令,作用类似于windows系统的任务管理器。能够实时监控系统的运行状态,主要显示系统中各个进程的资源使用情况,并根据cpu及内存等进行排序。
常用参数:
- -d:设定刷新时间
- -p:指定进程
3.iostat
I/O(输入输出)统计,对系统磁盘进行监控,输出磁盘读写的统计信息,只能进行整体分析。
常用参数
- -c:显示CPU的使用情况
- -d:显示磁盘的使用情况
4.netstat
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,检验本机各端口的网络连接情况。
常用参数:
- -a:显示所有连接socket信息。
- -t:显示所有TCP连接信息
- -u:显示所有UDP连接信息
- -p:显示socket所属进程的PID和名称
5.sar
sar系统活动情况报告(System Activity Reporter)是一个非常全面的系统监控命令,可以获取系统的CPU、内存、进程活动,系统调用等信息。
常用参数:
- -u:显示所有CPU在采样时间内的负载状态
- -r:输出内存和交换空间的统计信息
- -b:采样时间内缓冲区的使用情况
- -n:显示网络运行状态
- -d:硬盘设备在采样时间的使用情况
- -q:运行队列的大小
6.nmon
nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。需要单独安装,网上有很多安装的过程,这里就不多说了。
输入nmon后,可以使用如下命令:
- c:显示CPU的信息
- m:内存信息
- n:系统网络信息
- d:磁盘信息
- t:系统的进程信息
常用参数:
- -s:每隔n秒抽样一次
- -c:取多少个抽样数量
- -f:按标准格式输出文件名称YYMMDD_HHMM.nmon
- -m:指定统计文件的保存目录
nmon-s1-c60-f-m/home/nmon
使用nmonanalyser可以把nmon采集的数据生成直观的Excel图表,如下:
7.dstat
多功能系统资源统计生成工具,需要单独安装。集成了vmstat,iostat和ifstat三种命令的功能,输出带颜色的信息,更加清晰的显示系统的整体运行情况。
常用参数:
- -c:显示CPU系统占用
- -d:显示磁盘读写数据大小。
- -n:显示网络状态。
- -m:显示内存使用情况。
- -p:显示进程状态。
- -s:显示交换分区使用情况。
- -r:I/O请求情况。
一般使用按照如分类,进行性能工具选取,有时候需要几个命令配合使用,在使用命令选择上大家可以参考下图。