讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 虚拟机性能监控方法

风明吖_3275

风明吖_3275

发布时间:2026-02-20 16:47:45

|

392人浏览过

|

来源于php中文网

原创

用 vmstat 1 看 r、cs、wa 三列:r>CPU核心数说明任务排队,cs>50000反映调度开销大,wa>20%表明I/O等待严重;首行无效,须从第二行读实时值。

linux 虚拟机性能监控方法

怎么看 CPU 是否被拖垮:用 vmstat 1 抓住关键信号

别急着开 top 看哪个进程红了——虚拟机里真正拖慢响应的,往往是看不见的上下文切换和 I/O 等待。vmstat 一行就能暴露底层压力源。

运行 vmstat 1(每秒刷新),重点盯三列:r(就绪队列长度)、cs(每秒上下文切换)、wa(I/O 等待占比):

  • r > CPU核心数:说明有任务在排队等 CPU,不是“忙”,是“抢不到”
  • cs > 50000:虚拟机常见于频繁 fork/exit 或线程争锁,内核调度开销已吃掉可观算力
  • wa > 20%:宿主机磁盘或网络后端可能过载,虚拟机本身 CPU 没事,但卡在等数据

注意:vmstat 第一行是系统启动以来平均值,没参考价值;从第二行起才是实时采样。别拿第一行判断当前负载。

为什么 top 显示 CPU 很低,但服务却卡顿

因为 top 默认只显示用户态 + 内核态时间,而虚拟机中大量时间花在“等待宿主机调度”上——这部分被归为 id(idle),但它不是真空闲,是被 vCPU 抢占机制挂起的“伪空闲”。

验证方法:

  • 按 1 展开多核视图,看是否某些 vCPU 长期 id=100% 而另一些跑满——这是 vCPU 调度不均的典型表现
  • 对比 vmstat 的 in(中断次数)和 cs:若 in 很低但 cs 极高,大概率是应用层线程模型有问题,不是宿主机瓶颈
  • 检查 /proc/vmstat 中的 pgmajfault:数值持续上升说明频繁缺页,可能内存配额不足或 swap 被启用

虚拟机里 top 的 %CPU 是“vCPU 时间占比”,不是物理 CPU 占比,不能直接对标物理机指标。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

htop 在虚拟机里反而容易误导人

htop 的树状视图和彩色进度条看着直观,但在虚拟化环境下会掩盖两个关键事实:它不显示 vCPU 抢占延迟,也不区分 guest 和 host 的 I/O 等待。

实际使用建议:

  • 装了也别依赖默认视图——进 F2 → Display options,勾选 Hide kernel threads 和 Show custom thread names,避免被 ksoftirqd 这类内核线程刷屏干扰
  • 排序别只用 P(CPU%):按 T(运行时间)更能发现长期卡在 S(sleep)状态却迟迟不唤醒的进程,常是宿主机资源受限导致
  • 禁用 htop 的“内存柱状图”:虚拟机内存统计受 balloon driver 影响,htop 读的 /proc/meminfo 可能滞后,不如 free -h 看 available 列可靠

很多运维习惯性用 htop 杀进程,但在虚拟机里,k 键杀掉一个进程后,若宿主机 CPU 或内存仍紧张,新进程照样被调度器掐脖子——问题不在进程本身。

真正该定期查的三个文件

图形化工具再好,也是对 /proc 下原始数据的封装。虚拟机性能问题往往藏在这些文件的细微变化里:

  • /proc/stat:看 cpu 行的第 5 列(iowait)和第 10 列(guest_nice)。后者非零说明有容器或 KVM 内部调度开销,不是你的进程写的代码问题
  • /proc/vmstat:重点关注 pgpgin/pgpgout(页入页出速率)和 pgmajfault。连续 5 秒 pgmajfault > 1000,基本可判定内存配额不足或 NUMA 绑定失效
  • /sys/fs/cgroup/cpuacct/ 下对应 cgroup 的 cpuacct.usage_percpu:如果你用了 Docker 或 systemd slice,这里能确认是不是某个容器偷偷占满单个 vCPU

这些文件不需要“监控平台”,写个 3 行 shell 就能定时抓取:echo "$(date): $(awk '/^cpu / {print $6}' /proc/stat)" >> iowait.log。复杂点的瓶颈,永远藏在原始计数器的斜率里,不在颜色进度条上。

相关文章

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

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

下载

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

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

3000

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

249

2026.02.03

线程和进程的区别
线程和进程的区别

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

4318

2023.08.10

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

543

2025.12.01

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

745

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5839

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6897

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2673

2024.04.08

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

20

2026.10.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn