最常用的20个监控Linux系统性能的命令行工具有什么

发布时间:2021-10-22 09:51:16 作者:柒染
来源:亿速云 阅读:282
# 最常用的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         # 监控指定用户进程

2. htop - 增强型交互式监控

sudo apt install htop  # Debian/Ubuntu
sudo yum install htop  # RHEL/CentOS

特色功能: - 彩色界面显示 - 鼠标操作支持 - 进程树状视图(按F5) - 快速杀死进程(F9)

3. vmstat - 虚拟内存统计

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)

4. mpstat - 多核CPU监控

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瓶颈


二、内存监控工具

5. free - 内存使用概览

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:系统可用内存(含缓存)

6. pmap - 进程内存分析

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 ]匿名映射区域


三、磁盘I/O监控工具

7. iostat - 磁盘I/O统计

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:已被废弃,不要参考

8. iotop - 磁盘I/O进程监控

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:只显示活跃进程


四、网络监控工具

9. iftop - 实时带宽监控

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:显示端口号

10. nethogs - 进程级网络流量

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容器网络流量


五、综合监控工具

11. dstat - 全能资源监控

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

12. glances - 现代化仪表盘

pip install glances
glances --disable-plugin docker,ports,folders

核心功能: - 自适应终端大小 - 历史数据记录 - 警报阈值设置 - RESTful API接口


六、高级调试工具

13. perf - 系统性能分析器

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. 容器环境下的特殊用法 需要补充哪些部分可以具体说明。

推荐阅读:
  1. Linux系统性能监控
  2. unix、linux下的系统性能监控工具nmon

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:如何用Redis分布式锁才能确保万无一失

下一篇:数据库实用脚本方法教程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》