云服务器 ECS(以阿里云为例)的 vCPU 使用率 是指该实例中所有虚拟 CPU 核心在单位时间内被操作系统调度执行任务所占用的时间比例,通常以 百分比(%)表示,范围一般为 0%~100%(部分监控工具可能短暂超过100%,如因超线程/睿频或统计口径差异,但逻辑上单个 vCPU 最高为100%,多核整体使用率可高达 n × 100%,但监控系统通常归一化为 平均使用率(%)或最大使用率(%))。
以下是关键要点说明:
✅ 定义与计算方式
- vCPU 使用率 = (vCPU 实际工作时间 / 总可观测时间)× 100%
- 阿里云云监控(CloudMonitor)默认采集的是 所有 vCPU 的平均使用率(即
avg(%user + %nice + %system + %iowait + %irq + %softirq)),基于 Linuxtop/vmstat//proc/stat等内核数据,通过 Agent 或无侵入采集(如 eBPF)获取。 - 例如:2 vCPU 实例,若一个核满载(100%)、另一个空闲(0%),则平均使用率为 50%;若两者均达 80%,则显示为 80%。
✅ 监控查看方式(阿里云 ECS)
- 云监控控制台
- 路径:[ECS 控制台 → 实例列表 → 选择实例 → 监控与告警 → 基础监控]
- 指标:
CPUUtilization(单位:%),支持 1分钟/5分钟/1小时粒度,历史最长保留 365 天(取决于监控版本)。
- CloudMonitor OpenAPI
- 接口:
DescribeMetricList,Namespace=acs_ecs_dashboard,MetricName=CPUUtilization。
- 接口:
- 命令行(登录实例后)
top # 查看实时各 vCPU 及整体负载(%Cpu(s) 行) htop # 更直观的多核视图(需安装) mpstat -P ALL 1 # 每秒输出每个 vCPU 的详细使用率(sysstat 包)
⚠️ 注意事项
- 不是物理 CPU 占用率:vCPU 是虚拟化层抽象,受宿主机资源争抢、CPU 限额(如突发性能型 t6/t7 的 CPU 积分)、超卖策略影响,高 vCPU 使用率 ≠ 宿主机瓶颈,反之亦然。
- 突发性能实例(如 t6/t7):需关注 CPU 积分余额 和 基准性能,即使使用率 100%,若积分充足仍可持续爆发;积分耗尽后会被限频(实际性能下降,但监控仍可能显示 100%——此时是“被限频下的满载”)。
- Windows 实例:监控指标同名(
CPUUtilization),底层采集自性能计数器% Processor Time。 - 使用率长期 >80%? → 建议评估是否需升配(vCPU/内存)、优化应用(如减少循环、异步化)、检查异常进程(X_X木马、死循环等)。
- 使用率忽高忽低? → 结合
Load Average、IOWait、Context Switches综合判断是否为 I/O 瓶颈或频繁中断导致。
🔍 延伸建议
- 设置 告警规则(如连续5次 ≥90% 触发短信/钉钉通知);
- 结合 应用层指标(如 QPS、响应时间)分析是否为性能瓶颈;
- 对于容器化场景,还需关注 Pod/容器级 CPU 使用率(通过 ARMS 或 Prometheus + cAdvisor)。
如您使用的是其他云厂商(腾讯云 CVM、华为云 ECS、AWS EC2),指标名称和路径略有差异(如 AWS 为 CPUUtilization,单位 %,但默认 5 分钟聚合),欢迎补充云平台类型,我可提供对应详解 ✅
需要我帮您解读某次具体的 CPU 使用率图表,或分析高负载排查步骤吗?
CLOUD云