1. Linux自带监控工具

1.1. top工具

top是Linux和类Unix系统中比较常用的系统状态监控工具。他通过动态刷新的交互式视图,直观地展示系统总体信息和各个进程的运行状态信息。在Linux终端直接输入top命令,即可进入top工具状态监控页面。

  • 系统总体信息中每行的含义为:系统运行时间和平均负载、系统当前的进程运行统计、总体CPU或各核心的使用情况、物理内存使用情况、交换空间使用情况。
  • 进程运行状态信息中每列的含义为:进程标识符、进程所属用户、进程优先级、进程优先级调整值、虚拟内存占用量、物理内存占用量、共享内存占用量、内存占用率、进程累计运行时间、进程运行命令。

image-20240111214922497

在系统监控页面中,通过输入不同的参数,可实现交互式的调整监控视图。

  1. u键,可通过指定用户名,筛选属于该用户的进程状态信息。

    image-20240111215212898

  2. f键,可进行调整视图,自定义视图展示的字段、排序字段。通过上下方向键选择,按空格键切换该字段的展示,按s键确定排序的字段。

    image-20240111215333185

  3. 按数字1键,可在CPU总体状态和各核心状态之间切换展示。

    image-20240111215550851

  4. e键,可切换内存相关字段的展示单位,切换顺序为:Byte->KB->MB->GB->TB->PB

    image-20240111215638553

1.2. free工具

free工具用于Linux系统中显示系统物理内存使用状态。在Linux终端直接输入free命令,即可打印一次系统当前时刻的内存和交换空间使用状态。

打印的内容中,每列的含义分别为:系统总屋里内存量、占用物理内存量、空闲物理内存量、共享物理内存量、buffer和cache占用的内存量、可被进程使用的物理内存量。

image-20240111220359993

free命令也支持携带参数进行使用,例如:

  1. 若要切换内存展示的单位,可使用参数-b-k-m-g-terapeta,分别以ByteKBMBGBTBPB为单位进行展示(数值会向下取整)。使用参数-h,系统则会根据数值的大小自动选择合适的单位进行展示。

    image-20240111220444881

  2. 若要实时监控并打印内存使用状态,可使用参数-s N,系统将每间隔N秒打印一次内存信息,直至使用ctrl+c组合键结束。

    image-20240111220528335

  3. 若要制定打印次数,可使用参数-c N,系统将打印N次内存信息后自动结束(未结合-s参数使用时,默认间隔1秒)。

    image-20240111220607087


2. 第三方性能监控工具

2.1. dstat工具

dstat工具类似于top工具,自动刷新并打印系统CPU、磁盘、内存、交换空间、网络等状态信息。

在Linux终端通过apt install dstatyum install dstat命令安装后,直接输入dstat命令,即可实时刷新并打印系统当前使用状态信息。

image-20240111221827598

dstat命令未指定参数时,默认使用-a 1为参数,即一秒打印一次系统所有的状态信息;同时也支持携带参数进行使用。如:

  1. 通过分别使用参数-c-d-m-n-g-y,依次单独监控CPU磁盘网络内存交换空间分页系统等状态信息。

    image-20240111221949783

  2. 使用参数--tcp,实时监控TCP网络连接状态信息,包含监听数量、活动数量、握手数量、等待关闭数量、已关闭数量等内容。

    image-20240111222025350

  3. 使用参数--socket,实时监控socket套接字状态信息,包含连接总数量、tcp套接字数量、udp套接字数量、raw原始套接字数量、frg套接字数量等内容。

    image-20240111222146175

  4. 使用参数--top-cpu-adv,实时监控当前时刻最耗CPU的进程名、进程标识符、CPU占用率以及读写信息。

    image-20240111222225646

  5. 使用参数--top-cputime,实时监控当前时刻最耗CPU的进程名和对应的耗时时间(毫秒)。

    image-20240111222346699

  6. 使用参数--top-latency,实时监控当前时刻延迟最高的进程名和延迟时间(毫秒)。

    image-20240111222519310

  7. 使用参数--top-mem,实时监控当前时刻最耗内存的进程名和对应的进程占用。

    image-20240111222746783

2.2. sar工具

sar(System Activity Reporter),系统活动情况报告,可通过多个角度对系统的活动进行监控和报告,包括CPU、磁盘IO、系统调用情况、文件读写、内存使用等。sar工具对系统当前的状态进行连续取样,通过计算后输出系统当前的运行状态。

在Linux终端通过apt install sysstatyum install sysstat命令安装。

sar命令的语法及参数含义如下所示。

sar [ options ] [ <interval> [ <count> ] ]

其中,options选项的常用参数如下所示,interval选项表示样本采集的时间间隔,count选项则表示采样次数。

  • -r参数

    输出系统内存使用状态信息。

    每列含义依次是:内存空闲量、内存占用量、内存占用率、内存buffer占用、内存cache占用、系统所需内存量、系统所徐良与总内存占比。

    image-20240111223537082

  • -b参数

    输出系统物理设备的IO传输速率信息。

    每列含义依次是:每秒物理设备IO传输总量、每秒物理设备读取数据总量、每秒物理设备写入数据总量、每秒从物理设备读取的数据量(块/s)、每秒从物理设备写入的数据量(块/s)。

    image-20240111223737669

  • -d参数

    输出系统每块设备的使用状态信息。

    每列含义依次是:每秒从物理磁盘IO的次数、每秒扇区读取次数、每秒扇区写入次数、平均每次设备IO操作的数据大小、磁盘请求队列平均长度、请求磁盘操作到完成处理的平均耗时、每次请求的平均时间(不包含在队列中等待的时间)、IO请求占CPU的百分比。

    • %util占比越大,说明越饱和。
    • avgqu-sz值较低时,说明设备的利用率较高。

    image-20240111224046343


性能测试工具JMeter合集
【Performance】01. 性能测试技术初探篇之性能测试介绍
【Performance】02. 性能测试技术初探篇之常用性能测试工具
【Performance】03. 性能测试技术初探篇之 JMeter 工具使用
【Performance】04. 性能测试技术磨合篇之性能测试场景设计
【Performance】05. 性能测试技术磨合篇之脚本录制和调试
【Performance】06. 性能测试技术磨合篇之脚本执行和结果分析
【Performance】07. 性能测试技术历练篇之性能监控工具
【Performance】08. 性能测试技术历练篇之性能分析神器 JProfile
【Performance】09. 性能测试技术历练篇之 Java 诊断工具 Arthas