我有一个 VMWare ESxi 盒、22GB 内存、双四核 Xeon、2 个 Sas 驱动器 + 写入缓存 raid 控制器等。
无论如何,大约有 30 个小型 XP VM 在其上运行,并且开始出现一些非常缓慢的启动时间和其他性能问题。我认为是 I/O,但查看图表不太确定要查找什么。任何有关要查找什么的想法都将不胜感激。以下是我目前获得的数据:
(我觉得我的 IO 很高,但不知道该拿什么来作为基准)
答案1
仅由 2 个主轴(磁盘)为 30 个虚拟机提供服务可能会遇到 IO 瓶颈,即使这些虚拟机不是特别需要 IO(随机或顺序)。您正在查看 30 个单独的并发读取请求,这些请求发生在磁盘的相距很远的区域。在各个地方之间寻找会浪费大量时间。
如果您可以轻松获得该选项(备用驱动器插槽或备用外部外壳),我建议您设置第二个驱动器阵列,并将虚拟机迁移到该阵列。最少 4-6 个磁盘。如果您仅在 128 或 256 芯片上运行,另一个改进是更大的读/写缓存。
另一个需要检查的地方是 Zypher 提到的 vCPU 分配 - 为每个 VM 分配过多的 vCPU(与直觉相反)可能会减慢所有 VM 的速度(每个 VM 必须等待其每个 vCPU 的空闲核心才能获得 CPU 时间,因此 4vCPU VM 获得的周期可能比 2vCPU VM 少)
编辑:再想想,如果在单个 LUN 上安装如此多的虚拟机,还可能会遇到一些锁定问题。在各种虚拟机操作(可能是开机/挂起等)期间,您可能会遇到每个数据存储锁定。这会很快堆积起来,因此启动缓慢等问题可能是由此引起的。您可以通过在相同数量的驱动器空间内设置单独的数据存储来解决这个问题(将当前分区的大小调整为一半,然后在空白处创建一个新分区。在数据存储之间均匀分布虚拟机)。每个数据存储大约 15 个虚拟机是一个不错的最大值。
答案2
您想查看 esxtop 并阅读手动的 特别是第 4.2.2 节延迟统计和 4.2.3 节队列统计。
您可以对 esx 存储进行基准测试(一次在几个虚拟机中运行 iotop),以查看这些图表为您提供的读/写磁盘速率。您实际上只能将存储与其自身进行比较。同时观察 esxtop,以查看 DAVG 和 QUED 如何变化。
我并不惊讶 30 台虚拟机在两个磁盘上运行缓慢。
至于 SATA、SAS 和 SSD,这基本上是它们的速度和成本顺序。因此,如果您有钱并且需要速度,请转向 SAS 甚至 SSD。但您也可以先看看 SATA 磁盘的 raid 10。