排查虚拟机性能问题


本文档介绍如何诊断和缓解 Compute Engine 虚拟机 (VM) 实例上的 CPU、内存和存储性能问题。

准备工作

  • 安装 Ops Agent,以查看完整的虚拟机性能指标,例如内存和磁盘空间利用率

查看性能指标

如需查看虚拟机的性能指标,请使用 Google Cloud 控制台中提供的 Cloud Monitoring 可观测性指标。

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”

  2. 您可以查看个别虚拟机的指标,也可以查看消耗资源最多的五个虚拟机的指标。

    如需查看个别虚拟机的指标,请执行以下操作:

    1. 点击要查看其性能指标的虚拟机的名称。虚拟机实例详情页面随即打开。

    2. 点击可观测性标签页以打开“可观测性”概览页面。

    如需查看消耗资源最多的五个虚拟机的指标,请点击虚拟机实例页面上的可观测性标签页。

  3. 探索虚拟机的性能指标。查看概览CPU内存网络磁盘部分以查看每个主题的详细指标。以下是指示虚拟机性能的关键指标:

    • 概览页面上:

      • CPU 利用率。虚拟机使用的 CPU 的百分比。

      • 内存利用率。虚拟机使用的内存百分比(不包括磁盘缓存)。对于 Linux 虚拟机,这也会排除内核内存。

      • 网络流量。在一分钟间隔内发送和接收字节的平均速率。

      • 与虚拟机/外部/Google 来源建立的新连接。一分钟内不同的 TCP/UDP 流的估算数量,按对等类型分组。

      • 磁盘吞吐量。对磁盘执行读写操作的平均字节数。

      • 磁盘 IOPS。磁盘对 I/O 读取和写入操作的平均速率。

    • Network Summary 页面上:

      • 发送到虚拟机/外部/Google。网络流量发送到 Google 服务、虚拟机和外部目标的速率(基于数据包样本)。系统会扩缩指标,以使总和与发送的总网络流量相匹配。

      • 从虚拟机/外部/Google 接收。从 Google 服务、虚拟机和外部接收网络流量的速率(基于数据包样本)。系统会扩缩指标,以使总和与接收的总网络流量相匹配。

      • 网络数据包总计。在一分钟间隔内发送和接收数据包的总速率。

      • 数据包平均大小。在一分钟间隔内发送和接收的数据包的平均大小(以字节为单位)。

      • 遭拒的防火墙传入数据包。发送到虚拟机但由于防火墙规则拒绝而未被虚拟机接收的传入网络数据包的速率。

    • 磁盘性能页面上,执行以下操作:

      • 平均 I/O 大小:磁盘的 I/O 读取和写入操作的平均大小。较小 (4-16 KiB) 的随机 I/O 通常受限于 IOPS,而顺序/较大 (256 KiB - 1 MiB) 的 I/O 通常受限于吞吐量。

      • 队列平均长度:排名前 5 的设备已加入队列和正在运行的磁盘 I/O 操作次数(也称为队列深度)。如需达到永久性磁盘的性能限制,请使用较高的 I/O 队列深度。与物理磁盘或本地 SSD 相比,永久性磁盘是联网存储,延迟时间通常更长。

      • I/O 平均延迟时间:挂接到虚拟机的所有磁盘操作的汇总 I/O 读取和写入操作的平均延迟时间,由虚拟机中的 Ops Agent 测量。此值包括操作系统和文件系统处理延迟时间,具体取决于队列长度和 I/O 大小。

了解性能指标

虚拟机性能受运行虚拟机的硬件、虚拟机上运行的工作负载以及虚拟机的机器类型的影响。如果硬件无法支持虚拟机的工作负载或网络流量,则虚拟机的性能可能会受到影响。

CPU 和内存性能

硬件详细信息

CPU 和内存性能受以下硬件限制的影响:

  • 每个虚拟 CPU (vCPU) 是在 CPU 处理器上以单个硬件多线程的形式实现的。
  • Intel Xeon CPU 处理器支持单个处理器核心上的多个应用线程。
  • 使用 C2 机器类型的虚拟机具有虚拟核心到物理核心的固定映射,并向客机操作系统公开 NUMA 单元架构。
  • 即使只有基本频率通告给访客环境,大多数虚拟机也会获得 CPU 平台上列出的全核 Turbo 频率
  • 共享核心机器类型使用上下文切换功能在 vCPU 之间共享物理核心以实现多任务。它们还提供爆发能力,在此期间,虚拟机的 CPU 利用率可以超过 100%。如需了解详情,请参阅共享核心机器类型

要了解虚拟机的 CPU 和内存性能,请查看 CPU 利用率内存利用率的性能指标。此外,您还可以使用进程指标查看当前正在运行的进程、将资源消耗中的异常归因于特定进程,或识别虚拟机的成本最高的资源使用者。

如果 CPU 或内存利用率一直很高,则表明需要对虚拟机进行纵向扩容。如果虚拟机的 CPU 或内存利用率持续高于 90%,请将虚拟机的机器类型更改为具有更多 vCPU 或内存的机器类型。

网络性能

硬件详细信息

网络性能受以下硬件限制的影响:

如需了解虚拟机的网络性能,请查看性能指标,包括网络数据包总计数据包平均大小与虚拟机/外部/Google 来源建立的新连接发送到虚拟机/外部/Google从虚拟机/外部/Google 接收遭拒的防火墙传入数据包

查看网络数据包总计数据包平均大小与虚拟机/外部/Google 来源建立的新连接是否适合您的工作负载。例如,网络服务器可能会遇到许多连接和小型数据包,而数据库可能会遇到很少的连接和大型数据包。

如果传出网络流量一直较高,则可能表示需要将虚拟机的机器类型更改为具有更高出站流量带宽限制的机器类型

如果您发现防火墙拒绝了大量传入数据包,请访问 Google Cloud 控制台中的网络智能防火墙数据分析 (Network Intelligence Firewall Insights) 页面,详细了解被拒绝数据包的来源。

转到“防火墙数据分析”页面

如果您认为自己的流量被防火墙错误地拒绝,请尝试运行连接测试

如果您的虚拟机从不同可用区或区域中的虚拟机发送和接收大量流量,请考虑修改您的工作负载,将更多数据保留在某个可用区或区域内,以增加延迟时间并降低费用。如需了解详情,请参阅价格页面上的“Google Cloud 内虚拟机间的出站数据传输价格”。如果您的虚拟机向同一可用区内的其他虚拟机发送大量流量,请考虑使用紧凑布置政策来实现较低的网络延迟。

存储性能

硬件详细信息

存储空间受以下硬件限制的影响:

  • 所有永久性磁盘的总大小与 vCPU 数量相结合决定了总存储性能。如果有不同类型的永久性磁盘挂接到虚拟机,则虚拟机上的所有磁盘均受 SSD 永久性磁盘性能限制影响。如需了解详情,请参阅块存储性能
  • 在 Persistent Disk 和 Hyperdisk 与出站数据传输流量竞争的情况下,最大出站网络带宽的 60% 用于 Persistent Disk 和 Hyperdisk,剩余 40% 可用于出站网络数据传输。如需了解详情,请参阅影响性能的其他因素
  • I/O 大小和队列深度性能取决于工作负载。某些工作负载可能不够大,无法使用完整的 I/O 大小和队列深度性能限制。
  • 虚拟机的机器类型会影响其存储性能。如需了解详情,请参阅机器类型和 vCPU 数量

如需了解虚拟机的存储性能,请查看吞吐量操作 (IOPS)I/O 大小I/O 延迟时间队列长度的性能指标

磁盘吞吐量和 IOPS 可指示虚拟机工作负载是否按预期运行。如果吞吐量或 IOPS 低于磁盘类型图表中列出的预期最大值,则可能存在 I/O 大小、队列长度或 I/O 延迟性能问题。

对于需要高 IOPS 和低延迟时间的工作负载,预计 I/O 大小在 4-16 KiB 之间,而涉及顺序或大写入大小的工作负载则有 256 KiB-1 MiB 的需求。超出这些范围的 I/O 大小表示磁盘性能问题。

队列长度(也称为队列深度)是吞吐量和 IOPS 的一个因素。当磁盘性能良好时,其队列长度应与推荐的队列长度大致相同,以实现特定吞吐量或 IOPS 级别,列在推荐的 I/O 队列深度图表中。

I/O 延迟时间取决于队列长度和 I/O 大小。如果磁盘的队列长度或 I/O 大小较高,则延迟时间也会较高。

如果任何存储性能指标指示磁盘性能问题,请执行以下一项或多项操作: