图片来源网络
在Linux系统中,性能监测工具是很多的,下面我将生产环境常用的几个命令行工具进行介绍
1. top/htop
top:

功能:实时监控进程,显示CPU、内存、负载、交换区等信息。
常用快捷键:
快捷键 | 说明 |
---|---|
M | 按内存使用排序 |
P | 按CPU使用排序 |
k | 杀死进程,输入进程ID |
q | 退出 |
htop

功能:top的增强版本,提供更友好的界面和交互性。
特点:支持用箭头键选择进程,并可以直接杀死、查看进程树。在显示界面会有提示键
最小化安装的系统需要自行安装htop
yum install -y htop
2. vmstat

功能:监控系统的内存、进程、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次
vmstat 1 5
3. iostat

功能:帮助用户分析磁盘的读写性能,监控设备I/O活动,以及了解系统的整体负载情况。
语法格式:
iostat [选项] [更新时间间隔 次数]
常用选项
选项 | 说明 |
---|---|
-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 次统计信息。
iostat -x 1 5
4. netstat/ss

功能:查看网络连接、监听端口、路由信息等信息。
netstat和ss命令功能基本一样的。
常用选项:
选项 | 说明 |
---|---|
-a | 显示所有连接和监听端口 |
-t | 显示 TCP 协议的连接 |
-u | 显示 UDP 协议的连接 |
-l | 显示正在监听的套接字 |
-p | 显示哪个进程正在使用该连接 |
-n | 以数字格式显示地址和端口号(默认情况下,会显示主机名和服务名)。 |
-r | 显示路由表 |
-s | 显示网络统计信息 |
-i | 显示网络接口信息 |
常用操作:
显示正在监听的端口和使用这些端口的进程
netstat -lntup
ss -lnupt
ss命令也可以快速查看网络连接,通常比netstat更高效。

5. sar

功能:帮助用户监控系统状态,并生成关于 CPU 使用率、内存、I/O、网络、文件系统等的详细报告
sar属于sysstat包,需要单独安装。sar 默认并不会持续收集数据,还需要启动sysstat。
yum install sysstat
systemctl enable --now sysstat
常用操作
每秒报告一次CPU使用情况,报告三次。
sar -u 1 3

每秒报告一次内存使用情况,报告三次。
sar -r 1 3

6. iptraf
iptraf 是一个基于终端的交互式网络监控工具,主要用于实时监控和分析 Linux 系统的网络流量。它提供了详细的网络接口统计信息、网络连接状态、数据包计数、传输速率等内容,常用于网络性能调优和故障排查。iptraf 可以帮助系统管理员快速发现网络瓶颈、连接问题和流量异常。
安装
yum install iptraf
使用
iptraf-ng
下面动图演示一下效果
里面涉及的一些输出字段大部分应该是比较熟悉的,就不展开讲解了
7. nmon
功能:图形化监控工具,支持多项性能指标。
常用操作:
输入nmon启动界面
按c查看CPU状态
按m查看内存情况
按d查看磁盘空间情况

8. strace
功能:跟踪系统调用,帮助调试程序。
安装
yum install strace
使用strace -p监控特定进程的系统调用,或使用strace ./your_program跟踪程序的执行。
先通过netstat或top命令找到对应的PID,然后再追踪
如有帮助,请点个赞和“在看”!如有不足,敬请指出!感谢你的关注与支持。
路虽远,行则将至!
事虽难,做则必成!共勉!