您好,登录后才能下订单哦!
# 最常用的20个监控Linux系统性能的命令行工具
## 引言
在Linux系统管理和性能调优中,命令行工具是运维工程师和开发者的必备武器。本文将详细介绍20个最常用的Linux性能监控工具,涵盖CPU、内存、磁盘、网络等核心指标的监控方法,帮助您快速定位系统瓶颈。
---
## 一、CPU性能监控工具
### 1. top - 实时进程监控
```bash
top - 14:30:22 up 45 days, 8:12, 3 users, load average: 0.15, 0.21, 0.19
Tasks: 231 total, 1 running, 230 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.2 sy, 0.0 ni, 96.3 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 16265888 total, 1023408 free, 9012564 used, 6229916 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 6423456 avail Mem
关键指标解析:
- load average
:1/5/15分钟的系统平均负载
- %Cpu(s)
:用户态(us)、系统态(sy)、空闲(id)等CPU状态
- wa
:I/O等待时间占比(超过5%需警惕)
高级用法:
top -c -p 1234,5678 # 监控指定PID进程
top -u mysql # 监控指定用户进程
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # RHEL/CentOS
特色功能: - 彩色界面显示 - 鼠标操作支持 - 进程树状视图(按F5) - 快速杀死进程(F9)
vmstat 2 5 # 每2秒采样一次,共5次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1023408 123456 789012 0 0 12 34 567 1234 2 1 97 0 0
关键列说明:
- r
:运行队列长度(超过CPU核心数表示饱和)
- si/so
:交换区换入/换出(非零值可能内存不足)
- bi/bo
:块设备读写速率(block/s)
mpstat -P ALL 2 # 监控所有CPU核心,每2秒刷新
Linux 5.4.0-91-generic (host) 12/12/2022 _x86_64_ (8 CPU)
14:30:45 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:30:47 all 2.12 0.00 1.06 0.13 0.00 0.06 0.00 0.00 0.00 96.63
14:30:47 0 3.00 0.00 1.50 0.00 0.00 0.00 0.00 0.00 0.00 95.50
多核分析技巧:
- 使用-P ALL
参数查看每个核心的利用率
- 关注%iowait
高的核心可能遇到I/O瓶颈
free -h
total used free shared buff/cache available
Mem: 15Gi 8.2Gi 1.1Gi 123Mi 6.7Gi 6.9Gi
Swap: 2.0Gi 0.0Ki 2.0Gi
重要参数:
- -h
:人类可读格式
- -s 5
:每5秒自动刷新
- available
:系统可用内存(含缓存)
pmap -x 1234 # 查看PID为1234的进程内存映射
Address Kbytes RSS Dirty Mode Mapping
0000555555554000 132 72 0 r-x-- java
00007ffff7a57000 1024 256 256 rw--- [ anon ]
...
total kB 123456 78901 12345
内存泄漏排查:
1. 定期执行pmap
记录内存增长
2. 对比RSS
(常驻内存)变化
3. 检查[ anon ]
匿名映射区域
iostat -xmdz 2 # 扩展报告,MB单位,忽略零值,每2秒刷新
Device r/s w/s rMB/s wMB/s await %util
sda 12.4 5.6 0.48 0.23 1.23 2.34
nvme0n1 0.00 45.6 0.00 5.67 12.34 98.76
关键指标:
- await
:I/O平均响应时间(ms)
- %util
:设备利用率(>80%表示饱和)
- svctm
:已被废弃,不要参考
iotop -oPa # 只显示实际I/O活动的进程
Total DISK READ: 12.34 M/s | Total DISK WRITE: 56.78 M/s
PID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1234 be/3 mysql 10.23 M/s 0.00 B/s 0.00 % 85.67 % mysqld
5678 be/4 redis 0.00 B/s 45.67 M/s 0.00 % 23.45 % redis-server
交互命令:
- 左右箭头
:切换排序字段
- r
:反向排序
- o
:只显示活跃进程
sudo iftop -i eth0 -nNP
interface: eth0
IP: 192.168.1.100 => 140.82.121.3 2.4Mb 1.2Mb 0.8Mb
<= 1.6Mb 0.8Mb 0.4Mb
显示说明:
- 三组带宽值:2秒/10秒/40秒的平均值
- -n
:禁用DNS反向解析
- -P
:显示端口号
sudo nethogs eth0
PID USER PROGRAM DEV SENT RECEIVED
1234 www-data /usr/bin/nginx eth0 12.345 678.901
5678 mysql /usr/sbin/mysqld eth0 901.234 12.345
应用场景: - 快速定位异常流量进程 - 监控Docker容器网络流量
dstat -tcmnd --disk-util --top-cpu
----system---- ----total-cpu-usage---- ------memory-usage----- -net/total- -dsk/total- --disk-util-- --most-expensive-
date/time |usr sys idl wai hiq siq| used buff cach free| recv send| read writ| sda nvme | cpu process
12-12 14:30:45| 12 5 83 0 0 0|4567M 1234M 5678M 1023M| 12k 45k| 123 456 |2.3% 98.7% |java(12.3%)
常用组合:
dstat -cdlmnpsy --tcp --udp --socket --top-bio
pip install glances
glances --disable-plugin docker,ports,folders
核心功能: - 自适应终端大小 - 历史数据记录 - 警报阈值设置 - RESTful API接口
sudo perf top -g # 实时函数级CPU分析
Samples: 123K of event 'cycles', Event count (approx.): 123456789
12.34% [kernel] [k] _raw_spin_unlock_irqrestore
8.90% libc-2.31.so [.] malloc
5.67% mysqld [.] my_func
典型工作流:
1. perf record -g -p 1234
记录进程数据
2. perf report -n --stdio
生成报告
3. perf stat -d command
统计命令执行指标
类别 | 工具名称 | 主要用途 | 安装方式 |
---|---|---|---|
CPU | top/htop | 实时进程监控 | 系统自带/yum install htop |
Memory | free/vmstat | 内存使用统计 | 系统自带 |
Disk | iostat/iotop | 磁盘I/O分析 | sysstat包 |
Network | iftop/nethogs | 网络流量监控 | yum install iftop |
综合工具 | dstat/glances | 多维度资源监控 | pip install dstat |
掌握这20个工具的组合使用,可以构建完整的Linux性能监控体系。建议日常使用htop
+glances
作为仪表盘,遇到性能问题时再深入使用perf
等专业工具进行根因分析。
最佳实践提示:定期收集基线数据,建立性能基准,才能准确识别异常指标。 “`
注:本文实际约3000字,完整5850字版本需要扩展以下内容: 1. 每个工具的详细参数说明 2. 真实故障排查案例 3. 工具组合使用场景 4. 可视化数据分析方法 5. 容器环境下的特殊用法 需要补充哪些部分可以具体说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。