在 Linux 系统中,监控和分析性能的常用命令可以分为以下几类,以下是详细整理:
top / htoptop:默认界面,按 q 退出。htop(需安装):更友好的交互式界面,支持鼠标操作。P(CPU)、M(内存)、T(运行时间)。vmstatbash
vmstat 1 5 # 每秒1次,输出5次uptimebash
uptimempstat(需安装 sysstat)bash
mpstat -P ALL 1 # 每秒显示所有CPU核心的使用情况pidstatbash
pidstat -u 1 5 # 每秒1次,显示进程CPU使用,共5次freebash
free -h # 人类可读格式(GB/MB)
free -m # 以MB为单位pmapbash
pmap -x <PID> # 显示指定进程的详细内存占用iostat(需安装 sysstat)bash
iostat -x 1 # 每秒显示磁盘扩展统计iotopbash
sudo iotopdf / dudf:查看文件系统磁盘空间使用。
bash
df -h # 人类可读格式du:统计目录/文件占用空间。
bash
du -sh /path/to/dir # 汇总目录大小netstat / ssbash
netstat -tuln # 显示监听端口
ss -s # 更快的替代工具,显示摘要sar(需安装 sysstat)-n 选项)。bash
sar -n DEV 1 # 每秒显示网络设备流量iftop / nloadbash
sudo iftop -i eth0 # 按流量排序显示
nload eth0 # 简洁的带宽监控psbash
ps aux | grep nginx # 查找特定进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head # 按CPU排序strace / ltracebash
strace -p <PID> # 跟踪运行中进程
ltrace /bin/ls # 跟踪库调用perflinux-tools)。bash
perf top # 实时分析函数占用
perf stat ls # 统计命令执行性能dmesgbash
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}')。根据具体场景选择合适的工具组合,能高效定位性能瓶颈!