2026/3/31 14:13:44
网站建设
项目流程
做减肥网站,做封面的地图网站,网站优化软件有哪些,手机上如何制作自己的网站本文系统介绍Linux性能监控工具#xff0c;从CPU、内存、磁盘到网络#xff0c;一站式掌握系统状态观测。前言
服务器卡了#xff0c;怎么排查#xff1f;
Linux下有大量性能监控工具#xff0c;但很多人只会用top。今天把这些工具一网打尽#xff0c;建立完整的性能观测…本文系统介绍Linux性能监控工具从CPU、内存、磁盘到网络一站式掌握系统状态观测。前言服务器卡了怎么排查Linux下有大量性能监控工具但很多人只会用top。今天把这些工具一网打尽建立完整的性能观测知识体系。一、性能监控全景图┌─────────────────────────────────────┐ │ 应用层 │ │ strace, ltrace, perf │ └─────────────────────────────────────┘ ↓ ┌─────────────┬─────────────┬─────────────┬─────────────┐ │ CPU │ 内存 │ 磁盘 │ 网络 │ ├─────────────┼─────────────┼─────────────┼─────────────┤ │ top/htop │ free │ df/du │ ifconfig │ │ mpstat │ vmstat │ iostat │ netstat │ │ pidstat │ /proc/meminfo│ iotop │ ss │ │ uptime │ slabtop │ lsblk │ iftop │ │ sar │ pmap │ hdparm │ nethogs │ └─────────────┴─────────────┴─────────────┴─────────────┘ ↓ ┌─────────────────────────────────────┐ │ 综合工具 │ │ glances, nmon, dstat, atop │ └─────────────────────────────────────┘二、CPU监控2.1 top - 经典进程查看器top# 输出说明# load average: 1分钟、5分钟、15分钟平均负载# %Cpu(s): us用户态, sy内核态, id空闲, wa等待IO# 进程列表PID, USER, %CPU, %MEM, COMMAND常用操作1显示每个CPU核心M按内存排序P按CPU排序k杀死进程q退出2.2 htop - 增强版top# 安装aptinstallhtop# Debian/Ubuntuyuminstallhtop# CentOShtop# 优点# - 彩色显示# - 鼠标支持# - 直观的CPU/内存条# - 树形进程视图常用操作F2设置F3搜索进程F4过滤F5树形视图F9杀死进程2.3 mpstat - CPU统计# 每秒显示一次共5次mpstat15# 显示每个CPU核心mpstat -P ALL1# 输出说明# %usr: 用户态# %sys: 内核态# %iowait: IO等待# %idle: 空闲2.4 uptime - 负载查看uptime# 输出10:30:01 up 5 days, 2:30, 2 users, load average: 0.52, 0.58, 0.59# load average说明# 1分钟、5分钟、15分钟平均负载# 单核CPU负载1.0表示满载# 多核CPU负载等于核心数表示满载三、内存监控3.1 free - 内存使用free-h# 输出# total used free shared buff/cache available# Mem: 15Gi 5.2Gi 1.2Gi 512Mi 8.8Gi 9.5Gi# Swap: 2.0Gi 256Mi 1.8Gi# 关键指标# available实际可用内存比free更准确# buff/cache可回收的缓存3.2 vmstat - 虚拟内存统计# 每秒显示一次vmstat1# 输出说明# r: 运行队列长度# b: 不可中断睡眠进程数# swpd: 使用的swap# free: 空闲内存# buff/cache: 缓冲/缓存# si/so: swap换入/换出# bi/bo: 块设备读/写# us/sy/id/wa: CPU使用率3.3 pmap - 进程内存映射# 查看进程内存使用详情pmap -xpid# 显示# 地址、大小、RSS、脏页、映射的文件四、磁盘监控4.1 df - 磁盘使用df-h# 输出# Filesystem Size Used Avail Use% Mounted on# /dev/sda1 100G 60G 40G 60% /# 查看inodedf-i4.2 du - 目录大小# 查看目录大小du-sh /var/log# 查看子目录大小并排序du-sh /*2/dev/null|sort-rh|head-10# 查看指定深度du-h --max-depth1/var4.3 iostat - IO统计# 每秒显示一次iostat -x1# 关键指标# %util: 设备繁忙程度70%需关注# await: 平均IO等待时间毫秒# r/s, w/s: 每秒读写次数# rMB/s, wMB/s: 每秒读写MB4.4 iotop - IO版top# 安装aptinstalliotop# 运行需要rootsudoiotop# 常用选项iotop -o# 只显示有IO的进程iotop -a# 累计IO五、网络监控5.1 netstat/ss - 连接状态# 查看TCP连接netstat-ant ss -ant# 查看监听端口netstat-tlnp ss -tlnp# 统计连接状态ss -s# 查看端口占用ss -tlnp|grep:805.2 iftop - 网络流量# 安装aptinstalliftop# 运行需要rootsudoiftop# 指定网卡sudoiftop -i eth05.3 nethogs - 进程流量# 安装aptinstallnethogs# 运行sudonethogs# 查看哪个进程在占用带宽sudonethogs eth05.4 nload - 网卡流量# 安装aptinstallnload# 运行nload# 显示入站/出站流量曲线图六、综合监控工具6.1 glances - 全能监控# 安装pipinstallglances# 运行glances# Web模式glances -w# 访问 http://localhost:61208特点CPU、内存、磁盘、网络一屏显示支持Web界面支持远程监控可导出到InfluxDB6.2 nmon - IBM监控工具# 安装aptinstallnmon# 运行nmon# 按字母键切换显示# c: CPU# m: 内存# d: 磁盘# n: 网络6.3 dstat - 资源统计# 安装aptinstalldstat# 运行dstat# 显示所有信息dstat -cdngy# 输出到CSVdstat --output stats.csv1606.4 atop - 高级top# 安装aptinstallatop# 运行atop# 特点# - 记录历史数据# - 显示磁盘IO# - 进程级别详细信息七、进程级别分析7.1 pidstat - 进程统计# CPU使用pidstat1# 内存使用pidstat -r1# IO统计pidstat -d1# 指定进程pidstat -ppid17.2 strace - 系统调用追踪# 追踪进程系统调用strace-ppid# 追踪新进程stracels-la# 统计系统调用strace-cls-la7.3 lsof - 打开文件列表# 查看进程打开的文件lsof-ppid# 查看端口占用lsof-i :80# 查看用户打开的文件lsof-u username八、远程监控方案8.1 本地工具远程访问如果服务器在远程可以通过SSH访问这些工具# 直接SSH连接sshuserserverhtop如果服务器在家里没有公网IP可以用组网软件如星空组网连接后再SSH# 组网后通过虚拟IP访问sshuser10.10.0.18.2 Prometheus Grafana对于多台服务器建议使用专业监控系统# 安装node_exporter采集数据wgethttps://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztarxf node_exporter*.tar.gz ./node_exporterPrometheus配置采集Grafana展示图表。九、常用排查场景9.1 CPU高# 1. 确认CPU使用率top# 2. 找到占用CPU的进程psaux --sort-%cpu|head# 3. 分析进程strace-ppidpidstat -ppid19.2 内存不足# 1. 查看内存使用free-h# 2. 找到占用内存的进程psaux --sort-%mem|head# 3. 查看进程详细内存pmap -xpid9.3 磁盘IO高# 1. 确认IO情况iostat -x1# 2. 找到IO高的进程iotop -o# 3. 分析进程IOpidstat -d -ppid19.4 网络问题# 1. 查看网络连接ss -ant# 2. 查看流量iftop nethogs# 3. 抓包分析tcpdump -i eth0 port80十、工具速查表场景工具命令整体概览htop/glanceshtopCPU使用mpstatmpstat 1内存使用freefree -h磁盘空间dfdf -h磁盘IOiostatiostat -x 1网络连接ssss -ant网络流量iftopsudo iftop进程流量nethogssudo nethogs进程IOiotopsudo iotop系统调用stracestrace -p pid十一、总结Linux性能监控工具选择日常查看htop比top更直观综合监控glances一屏看所有CPU分析mpstat、pidstat内存分析free、vmstat磁盘分析iostat、iotop网络分析ss、iftop、nethogs深入分析strace、perf建议先用综合工具htop/glances定位问题方向再用专项工具深入分析。参考资料Linux Performance Analysis in 60 SecondsBrendan Gregg’s Linux Performance《性能之巅》建议把这些命令存到服务器上的备忘文件里排查问题时可以快速翻阅。