在 Linux 系统中,监控和分析性能的常用命令可以分为以下几类,以下是详细整理:
top
/ htop
top
:默认界面,按 q
退出。htop
(需安装):更友好的交互式界面,支持鼠标操作。P
(CPU)、M
(内存)、T
(运行时间)。vmstat
bash
vmstat 1 5 # 每秒1次,输出5次
uptime
bash
uptime
mpstat
(需安装 sysstat
)bash
mpstat -P ALL 1 # 每秒显示所有CPU核心的使用情况
pidstat
bash
pidstat -u 1 5 # 每秒1次,显示进程CPU使用,共5次
free
bash
free -h # 人类可读格式(GB/MB)
free -m # 以MB为单位
pmap
bash
pmap -x <PID> # 显示指定进程的详细内存占用
iostat
(需安装 sysstat
)bash
iostat -x 1 # 每秒显示磁盘扩展统计
iotop
bash
sudo iotop
df
/ du
df
:查看文件系统磁盘空间使用。
bash
df -h # 人类可读格式
du
:统计目录/文件占用空间。
bash
du -sh /path/to/dir # 汇总目录大小
netstat
/ ss
bash
netstat -tuln # 显示监听端口
ss -s # 更快的替代工具,显示摘要
sar
(需安装 sysstat
)-n
选项)。bash
sar -n DEV 1 # 每秒显示网络设备流量
iftop
/ nload
bash
sudo iftop -i eth0 # 按流量排序显示
nload eth0 # 简洁的带宽监控
ps
bash
ps aux | grep nginx # 查找特定进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head # 按CPU排序
strace
/ ltrace
bash
strace -p <PID> # 跟踪运行中进程
ltrace /bin/ls # 跟踪库调用
perf
linux-tools
)。bash
perf top # 实时分析函数占用
perf stat ls # 统计命令执行性能
dmesg
bash
dmesg | tail -20 # 显示最近20条内核日志
sar
(系统历史数据)sysstat
包中收集的历史性能数据。
bash
sar -u -f /var/log/sa/sa10 # 查看某天的CPU历史
类别 | 命令 | 主要用途 |
---|---|---|
整体状态 | top , vmstat , uptime |
实时负载、资源概览 |
CPU | mpstat , pidstat |
多核/进程CPU使用率 |
内存 | free , pmap |
内存占用、进程内存详情 |
磁盘 | iostat , iotop |
I/O 负载、热点进程 |
网络 | netstat , iftop |
连接、带宽监控 |
进程 | ps , strace |
进程详情、系统调用跟踪 |
高级工具 | perf , sar |
深度性能分析、历史数据 |
top
或 htop
定位异常进程,再通过 strace
/perf
深入分析。sar
查看历史数据(需提前启用 sysstat
服务)。awk
/grep
过滤关键指标(如 vmstat | awk '{print $1,$2}'
)。根据具体场景选择合适的工具组合,能高效定位性能瓶颈!