将只读磁盘附加到谷歌计算引擎的性能基准

问题描述 投票:0回答:2

是否有人对将单个只读磁盘附加到多个 Google Compute Engine 实例(即只读模式下的相同磁盘)的性能进行了基准测试?

Google 文档 ( https://cloud.google.com/compute/docs/disks/persistent-disks#use_multi_instances ) 表明将多个实例附加到同一磁盘是可以的,个人经验表明这一点小规模工作(5 到 10 个实例),但很快我们将在 500 多台机器(GCE 实例)上运行作业。我们想知道随着并行附件数量的增加以及这些附件的带宽的增加,性能如何扩展。我们目前从 Google 云存储桶中提取大块数据(只读),并且想知道切换到标准持久磁盘配置的优点。这涉及 TB 级的数据,因此我们不想改变方向,无论愿意与否。

一个重要的考虑因素:500 多台机器上的每台机器上的代码很可能会尝试同时访问同一个文件 (400MB)。在这种情况下,存储桶和连接的驱动器如何比较?也许答案是显而易见的 - 而且这样就无需我们自己建立严格的基准测试系统(跨 500 台机器)。谢谢。

google-cloud-storage google-compute-engine
2个回答
1
投票

GCE 上的持久磁盘应该具有一致的性能。目前,标准永久磁盘的每 100GB 卷大小为 12MB/s 和 30IOPS:

https://cloud.google.com/compute/docs/disks/persistent-disks#pdperformance

在多个实例上使用它不应改变磁盘的整体性能。然而,它将使使用这些限制变得更容易,因为您无需担心使用实例的最大读取速度。但是,同时多次访问相同的数据可能会发生这种情况。我确实知道永久磁盘或 GCS 如何处理争用。

如果只有 400MB 的文件存在争用,则仅对单独交付该文件的最快方法进行基准测试可能是有意义的。一种可能的解决方案是复制您的关键文件并随机选择您访问的文件。这应该会导致更少的节点争夺每个文件。

复制关键文件意味着更大的磁盘,因此也有助于提高 IO 性能。如果您已经打算增加卷大小以获得更好的性能,则副本是免费的。


0
投票

GCS 和持久磁盘都实现了各种形式的缓存和服务器扩展。如果您从许多虚拟机同时读取 400 MB 对象,我会说 GCS 是获取该数据的最简单且最便宜的解决方案。

如果您想使用持久磁盘 (PD),您可以在最多 10 个虚拟机上以只读方式附加 PD,以获得每个虚拟机上的完整额定磁盘性能。如果您有 500 个虚拟机,您需要克隆源磁盘 50 次,然后将这 50 个磁盘以只读方式分别附加到 10 个虚拟机。您将获得较低的延迟访问 - 特别是对于较小的随机读取 - 但对于具有足够并发性的顺序吞吐量或大块读取,它可能与 GCS 相当。

我最近在博客中介绍了只读永久磁盘,以防更深入的研究有用。

© www.soinside.com 2019 - 2024. All rights reserved.