0

0

Linux性能监控教程_topvmstatiostat性能指标解析

冰川箭仙

冰川箭仙

发布时间:2026-01-04 19:22:02

|

674人浏览过

|

来源于php中文网

原创

top、vmstat、free、iostat 分别监控CPU、全系统状态、内存真实可用量、磁盘I/O,需重点关注平均负载与CPU核心数关系、available内存、wa和%util等关键指标,结合使用可精准定位性能瓶颈。

linux性能监控教程_topvmstatiostat性能指标解析

Linux性能监控中,topvmstatfreeiostat 是最常用且信息密度高的命令,它们各自聚焦不同维度:CPU、内存、I/O 和整体系统负载。掌握它们输出中关键字段的含义和变化趋势,比记住所有参数更重要。

top:实时观察进程级资源消耗

运行 top 后重点关注以下几行:

  • 第一行(uptime):显示系统运行时间、当前登录用户数、平均负载(1/5/15分钟)。平均负载 > CPU核心数,说明有任务在排队等待CPU,但不等于CPU 100%——需结合%CPU列判断。
  • 第二行(Tasks):R(运行中)、S(睡眠)、Z(僵尸)进程数量。Z进程持续存在需排查父进程是否正常回收。
  • 第三行(%Cpu(s)):us(用户态)、sy(内核态)、ni(优先级调整)、id(空闲)、wa(I/O等待)、hi(硬件中断)、si(软件中断)、st(被虚拟机偷走的时间)。wa 长期 > 20% 通常意味着磁盘响应慢;st 高说明宿主机资源紧张。
  • 内存行(Mem / Swap):关注 freeavailable 字段。available 才是真正可立即分配给新进程的内存(含可回收的缓存),比 free 更具参考价值。
  • 进程列表:按 P(CPU)、M(内存)、T(运行时间)排序;Shift + F 可自定义显示列;k 可杀进程,q 退出。

vmstat:轻量级全系统状态快照

执行 vmstat 1 5 表示每秒采样一次,共5次。核心列解读如下:

  • r:就绪队列中的进程数。持续 > CPU核心数,说明CPU竞争激烈。
  • b:不可中断睡眠状态(如等待I/O)的进程数。b高+wa高,指向磁盘瓶颈。
  • swpd:已使用的swap大小。非零不一定异常,但若持续增长且伴随si/so频繁,说明物理内存不足。
  • si/so:swap in/out(单位KB/s)。si > 0 且持续发生,是内存压力明确信号。
  • bi/bo:块设备I/O(读/写,单位blocks/s)。配合iostat看具体设备压力。
  • in:每秒中断次数。异常升高可能由硬件或驱动问题引起。
  • cs:每秒上下文切换次数。过高(如 > 10万)可能因进程/线程过多或频繁阻塞唤醒。

free:精准理解内存使用真相

free -h 查看易读结果,重点看 available 列而非 free

TabTab AI
TabTab AI

首个全链路 Data Agent,让数据搜集、处理到深度分析一步到位。

下载
  • used:已分配给进程或内核的内存,含缓存(buffers/cache),不代表真实占用。
  • buff/cache:内核缓冲区 + 页面缓存。这部分可被快速回收,不是“浪费”。Linux会主动利用空闲内存做缓存提升IO性能。
  • available:估算的、无需交换即可供新进程使用的内存。这是判断是否缺内存的核心指标。
  • available 接近0且 swap used 持续上升,才是真正的内存瓶颈。

iostat:定位磁盘I/O性能瓶颈

常用 iostat -x 1 3(-x 显示扩展统计,1秒间隔,3次):

  • %util:设备忙于处理I/O请求的时间百分比。>70% 通常表示磁盘饱和,但SSD可承受更高利用率;需结合 await 和 svctm 看是否真有延迟。
  • await:I/O请求平均等待+服务时间(毫秒)。>10ms(HDD)或 > 1ms(SSD)需警惕,持续升高说明响应变慢。
  • svctm(已弃用):旧版中表示平均服务时间,现建议忽略,以 await 和 %util 为主。
  • r/s, w/s:每秒读/写请求数。结合 rMB/s、wMB/s,可判断是小IO密集型(如数据库日志)还是大IO吞吐型(如视频转码)。
  • avgqu-sz:平均队列长度。>1 且 await 高,说明I/O请求在排队,设备跟不上。

这些工具不是孤立使用的。例如:top看到wa高 → vmstat确认bi/bo和b值 → iostat查具体设备%util和await → free看内存是否触发swap → 综合判断是磁盘慢、内存不足,还是应用本身IO设计不合理。不复杂但容易忽略。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

475

2023.08.10

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

340

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2070

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

346

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

253

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

321

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

403

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

378

2023.10.16

mc.js网页版入口地址大全
mc.js网页版入口地址大全

本专题整合了mc.js网页版入口地址大全以及mc.js1.8.8版本汇总,阅读专题下面的文章了解更多详细内容。

34

2026.01.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.6万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号