首页 > 解决方案 > 为什么 VM 实例上的 CPU 利用率有间隔?(谷歌云平台)

问题描述

我是谷歌云平台的新手,目前正在尝试了解 CPU 利用率图表。(附在下面)。这是具有 2 个预留 vCPU 的中型机器类型的图表。

在此处输入图像描述 在此处输入图像描述

我无法理解的是,当我的机器使用率或多或少呈线性时,为什么 CPU 利用率会出现这种模式(线路上下波动,从 5% 到 26% 一次又一次)。我知道,小型机器允许 CPU 爆发,但这似乎不是一个解释,因为我的使用量从未超过 CPU 上限。

虚拟机详情:

将不胜感激任何提示!

标签: google-cloud-platformvirtual-machine

解决方案


您提到的指标表明您的虚拟机上的某些进程在特定时间间隔内使用 CPU。

在没有更多信息的情况下,要弄清楚为什么您的图表会从 5% 飙升至 25% 并反弹回来,这只是一场猜谜游戏。

要确定导致它的过程,您可以尝试使用ps或更多“人类友好”htop命令,看看您的系统发生了什么。

例如:

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
  PID  PPID CMD                         %MEM %CPU
  397     1 /usr/bin/google_osconfig_ag  0.7  0.0
  437     1 /usr/bin/google_guest_agent  0.5  0.0
  408     1 /usr/bin/python3 /usr/share  0.4  0.0
    1     0 /sbin/init                   0.2  0.0
  234     1 /lib/systemd/systemd-journa  0.2  0.0
17419     1 /lib/systemd/systemd --user  0.2  0.0
17416   543 sshd: wb [priv]         0.2  0.0
  575     1 /lib/systemd/systemd-logind  0.1  0.0
  543     1 /usr/sbin/sshd -D            0.1  0.0

这里有一些关于如何使用ps的提示以及关于它的另一个有用的问答

看看这个答案- 它可能会给你一些见解。

另外 - 这是官方GCP 文档对从 VM 上运行的代理收集的 CPU 使用率指标所说的:

在不同状态下花费的总 CPU 容量的百分比。此值是从 VM 内部报告的,并且可能不同于compute.googleapis.com/instance/cpu/utilizationVM 管理程序报告的 。每 60 秒采样一次。

cpu_number: CPU 编号,例如“0”、“1”或“2”。此标签仅在某些监控配置中设置。仅限 Linux。

cpu_state: CPU 状态,Linux 上的 [idle, interrupt, nice, softirq,steal, system, user, wait] 或 Windows 上的 [idle, used] 之一。


推荐阅读