我正在经历每 10 分钟,GCP Compute Engine 上执行磁盘要求高的任务时 CPU 就会达到峰值。我想了解这些峰值出现的原因。我的目标是消除这些峰值或确保它们不会对我的应用程序的性能产生潜在影响。
为了进行比较,我对 GCP 的 e2-standard-2 Compute Engine(配备 SSD)和 DigitalOcean 的 Basic Regular 4GB 2 核 VM(配备 SSD)进行了两项测试。两台机器都运行在 Ubuntu 22.04 上。
测试持续了 1.5 小时(磁盘加载 1 小时,空闲 30 分钟)。我在两台机器上使用了相同的 bash 脚本,用于fio
磁盘加载、sar
收集指标和gnuplot
绘制图表。以下是脚本的链接:CPU 磁盘负载测试.sh
在上图中,我们可以观察到 GCP 的 Compute Engine 上每 10 分钟出现一次系统级峰值(是的,图像中还有一些其他峰值,但我从多次测试中得出的主要重复模式是 10 分钟模式)。11:10 之后也有一个峰值,即使我这边完全没有负载。
以下是 Digitalocean VM 运行相同脚本时得到的图,但没有这些峰值:
虽然由于硬件不同或其他原因,GCP 和 DO 上的 CPU 利用率总体上看起来不同,但我主要关注的是这些峰值,而不是性能。
如果您知道为什么会发生这种情况,我将非常感激您的帮助。
谢谢!