八个常用 Linux 性能监测命令,你用过几个?
在Linux系统中,性能监测工具是很多的,我下面将常用的几个命令行工具进行介绍。
(1) top:
图片
功能:实时监控进程,显示CPU、内存、负载、交换区等信息。
常用快捷键:
快捷键
说明
M
按内存使用排序
P
按CPU使用排序
k
杀死进程,输入进程ID
q
退出
(2) htop
功能:top的增强版本,提供更友好的界面和交互性。
特点:支持用箭头键选择进程,并可以直接杀死、查看进程树。在显示界面会有提示键
最小化安装的系统需要自行安装htop:
功能:监控系统的内存、进程、CPU和I/O等。
输出字段:
字段
说明
r
运行队列中等待CPU的进程数(Runnable)
b
处于等待状态的进程数(Blocked)
swpd
已使用的虚拟内存
free
空闲内存
buff
用作缓冲区的内存
cache
用作页面缓存的内存
si
从交换空间读取的内存
so
写入交换空间的内存量
bi
每秒钟从块设备(如磁盘)读取的块数
bo
每秒钟写入块设备的块数
in
每秒中断的次数
cs
每秒上下文切换的次数
us
用户空间占用的CPU时间百分比(User)
sy
内核空间占用的CPU时间百分比(System)
id
空闲的CPU时间百分比(Idle)
wa
等待I/O的CPU时间百分比(Wait)
st
被虚拟机偷取的CPU时间百分比(Stolen)
常用操作:每1秒更新一次,输出5次
功能:帮助用户分析磁盘的读写性能,监控设备I/O活动,以及了解系统的整体负载情况。
语法格式:
常用选项:
选项
说明
-c
示 CPU 使用情况
-d
显示磁盘设备的统计信息
-x
显示扩展的磁盘统计信息
-p
显示每个分区的统计信息
-h
使用更友好的单位
主要输出字段:
输出字段
说明
%user
用户进程消耗的CPU百分比
%system
系统进程消耗的CPU百分比
%iowait
等待 I/O 的 CPU 时间百分比
%idle
空闲的 CPU 时间百分比(Idle)
tps
每秒钟的 I/O 操作次数
kB_read/s
每秒读取的 KB 数
kB_wrtn/s
每秒写入的 KB 数
kB_read
从系统启动以来读取的总 KB 数
kB_wrtn
从系统启动以来写入的总 KB 数
使用-x选项的扩展输出::
输出内容
说明
r_await
每次读取操作的平均等待时间(ms)
w_await
每次写入操作的平均等待时间(ms)
await
所有 I/O 操作(读/写)的平均等待时间(ms)
svctm
每次 I/O 操作的平均服务时间(ms)
%util
磁盘的利用率
常用操作:每 1 秒钟更新一次,输出 5 次统计信息。
功能:查看网络连接、监听端口、路由信息等信息。
netstat和ss命令功能基本一样的。
常用选项:
选项
说明
-a
显示所有连接和监听端口
-t
显示 TCP 协议的连接
-u
显示 UDP 协议的连接
-l
显示正在监听的套接字
-p
显示哪个进程正在使用该连接
-n
以数字格式显示地址和端口号(默认情况下,会显示主机名和服务名)。
-r
显示路由表
常用操作: 显示正在监听的端口和使用这些端口的进程
ss命令也可以快速查看网络连接,通常比netstat更高效。
功能:帮助用户监控系统状态,并生成关于 CPU 使用率、内存、I/O、网络、文件系统等的详细报告
sar属于sysstat包,需要单独安装。sar 默认并不会持续收集数据,还需要启动sysstat。
常用操作:
每秒报告一次CPU使用情况,报告三次。iptraf 是一个基于终端的交互式网络监控工具,主要用于实时监控和分析 Linux 系统的网络流量。它提供了详细的网络接口统计信息、网络连接状态、数据包计数、传输速率等内容,常用于网络性能调优和故障排查。iptraf 可以帮助系统管理员快速发现网络瓶颈、连接问题和流量异常。
安装:
使用:
里面涉及的一些输出字段大部分应该是比较熟悉的,就不展开讲解了。
7. nmon功能:图形化监控工具,支持多项性能指标。
使用: 启动nmon,按c查看CPU,按m查看内存,按d查看磁盘。
按c查看CPU:
按m查看内容:
按d查看磁盘:
功能:跟踪系统调用,帮助调试程序。
安装:
使用strace -p监控特定进程的系统调用,或使用strace ./your_program跟踪程序的执行。
先通过netstat或top命令找到对应的PID,然后再追踪: