【Performance】07.性能测试技术历练篇之性能监控工具
1. Linux自带监控工具
1.1. top工具
top是Linux和类Unix系统中比较常用的系统状态监控工具。他通过动态刷新的交互式视图,直观地展示系统总体信息和各个进程的运行状态信息。在Linux终端直接输入top
命令,即可进入top工具状态监控页面。
- 系统总体信息中每行的含义为:系统运行时间和平均负载、系统当前的进程运行统计、总体CPU或各核心的使用情况、物理内存使用情况、交换空间使用情况。
- 进程运行状态信息中每列的含义为:进程标识符、进程所属用户、进程优先级、进程优先级调整值、虚拟内存占用量、物理内存占用量、共享内存占用量、内存占用率、进程累计运行时间、进程运行命令。
在系统监控页面中,通过输入不同的参数,可实现交互式的调整监控视图。
按
u
键,可通过指定用户名,筛选属于该用户的进程状态信息。按
f
键,可进行调整视图,自定义视图展示的字段、排序字段。通过上下方向键选择,按空格
键切换该字段的展示,按s
键确定排序的字段。按数字
1
键,可在CPU总体状态和各核心状态之间切换展示。按
e
键,可切换内存相关字段的展示单位,切换顺序为:Byte->KB->MB->GB->TB->PB。
1.2. free工具
free工具用于Linux系统中显示系统物理内存使用状态。在Linux终端直接输入free
命令,即可打印一次系统当前时刻的内存和交换空间使用状态。
打印的内容中,每列的含义分别为:系统总屋里内存量、占用物理内存量、空闲物理内存量、共享物理内存量、buffer和cache占用的内存量、可被进程使用的物理内存量。
free
命令也支持携带参数进行使用,例如:
若要切换内存展示的单位,可使用参数
-b
、-k
、-m
、-g
、-tera
、peta
,分别以Byte
、KB
、MB
、GB
、TB
、PB
为单位进行展示(数值会向下取整)。使用参数-h
,系统则会根据数值的大小自动选择合适的单位进行展示。若要实时监控并打印内存使用状态,可使用参数
-s N
,系统将每间隔N秒打印一次内存信息,直至使用ctrl+c
组合键结束。若要制定打印次数,可使用参数
-c N
,系统将打印N次内存信息后自动结束(未结合-s
参数使用时,默认间隔1秒)。
2. 第三方性能监控工具
2.1. dstat工具
dstat工具类似于top工具,自动刷新并打印系统CPU、磁盘、内存、交换空间、网络等状态信息。
在Linux终端通过apt install dstat
或yum install dstat
命令安装后,直接输入dstat
命令,即可实时刷新并打印系统当前使用状态信息。
dstat
命令未指定参数时,默认使用-a 1
为参数,即一秒打印一次系统所有的状态信息;同时也支持携带参数进行使用。如:
通过分别使用参数
-c
、-d
、-m
、-n
、-g
、-y
,依次单独监控CPU
、磁盘
、网络
、内存
、交换空间
、分页
、系统
等状态信息。使用参数
--tcp
,实时监控TCP网络连接状态信息,包含监听数量、活动数量、握手数量、等待关闭数量、已关闭数量等内容。使用参数
--socket
,实时监控socket套接字状态信息,包含连接总数量、tcp套接字数量、udp套接字数量、raw原始套接字数量、frg套接字数量等内容。使用参数
--top-cpu-adv
,实时监控当前时刻最耗CPU的进程名、进程标识符、CPU占用率以及读写信息。使用参数
--top-cputime
,实时监控当前时刻最耗CPU的进程名和对应的耗时时间(毫秒)。使用参数
--top-latency
,实时监控当前时刻延迟最高的进程名和延迟时间(毫秒)。使用参数
--top-mem
,实时监控当前时刻最耗内存的进程名和对应的进程占用。
2.2. sar工具
sar(System Activity Reporter),系统活动情况报告,可通过多个角度对系统的活动进行监控和报告,包括CPU、磁盘IO、系统调用情况、文件读写、内存使用等。sar工具对系统当前的状态进行连续取样,通过计算后输出系统当前的运行状态。
在Linux终端通过apt install sysstat
或yum install sysstat
命令安装。
sar命令的语法及参数含义如下所示。
sar [ options ] [ <interval> [ <count> ] ]
其中,options
选项的常用参数如下所示,interval
选项表示样本采集的时间间隔,count
选项则表示采样次数。
-r
参数输出系统内存使用状态信息。
每列含义依次是:内存空闲量、内存占用量、内存占用率、内存buffer占用、内存cache占用、系统所需内存量、系统所徐良与总内存占比。
-b
参数输出系统物理设备的IO传输速率信息。
每列含义依次是:每秒物理设备IO传输总量、每秒物理设备读取数据总量、每秒物理设备写入数据总量、每秒从物理设备读取的数据量(块/s)、每秒从物理设备写入的数据量(块/s)。
-d
参数输出系统每块设备的使用状态信息。
每列含义依次是:每秒从物理磁盘IO的次数、每秒扇区读取次数、每秒扇区写入次数、平均每次设备IO操作的数据大小、磁盘请求队列平均长度、请求磁盘操作到完成处理的平均耗时、每次请求的平均时间(不包含在队列中等待的时间)、IO请求占CPU的百分比。
%util
占比越大,说明越饱和。avgqu-sz
值较低时,说明设备的利用率较高。
性能测试工具JMeter合集
【Performance】01. 性能测试技术初探篇之性能测试介绍
【Performance】02. 性能测试技术初探篇之常用性能测试工具
【Performance】03. 性能测试技术初探篇之 JMeter 工具使用
【Performance】04. 性能测试技术磨合篇之性能测试场景设计
【Performance】05. 性能测试技术磨合篇之脚本录制和调试
【Performance】06. 性能测试技术磨合篇之脚本执行和结果分析
【Performance】07. 性能测试技术历练篇之性能监控工具
【Performance】08. 性能测试技术历练篇之性能分析神器 JProfile
【Performance】09. 性能测试技术历练篇之 Java 诊断工具 Arthas