0

Google Compute Engine 支持 RAM 磁盘 - 请参见此处
我开发了一个项目,该项目将重用处理本地文件的现有代码。
为了可扩展性,我将使用 Dataflow。
这些文件在 GCS 中,我会将其发送给 Dataflow 工作人员进行操作。
我正在考虑通过在工作人员上使用 RAM 磁盘来创造更好的性能,将文件从 GCS 直接复制到 RAM 磁盘,并在那里进行操作。
我找不到任何这种能力的例子。

这是一个有效的解决方案,还是我应该避免这种“技巧”?

4

2 回答 2

1

由于 ramdisk 是在操作系统级别上设置的,因此无法使用 ramdisk 作为工作人员的磁盘类型。工作人员唯一可用的磁盘是标准永久性磁盘 (pd-standard) 和 SSD 永久性磁盘 (pd-ssd)。其中,SSD肯定更快。您可以尝试添加更多工作人员或使用更快的 CPU 来更快地处理数据。

为了比较,我尝试运行一个使用标准和 ssd 的作业,结果发现使用 SSD 比标准磁盘快 13%。但请注意,我刚刚从dataflow docs测试了快速入门。

使用 SSD(经过 3m 54s 时间):

在此处输入图像描述

使用标准磁盘(4m 29s 经过时间):

在此处输入图像描述

于 2021-01-15T05:37:57.043 回答
1

虽然通过使用自定义命令创建一个setup.py您想要做的事情在技术上是可行的,但它不会帮助您提高性能。Beam 已经尽可能多地使用工作人员的 RAM 以有效执行。如果您正在从 GCS 读取文件并对其进行操作,则该文件已经被加载到 RAM 中。通过为 ramdisk 指定一大块 RAM,您可能会使 Beam 运行得更慢,而不是更快。

如果您只是想让事情发生得更快,请尝试使用 SSD,增加工作人员的数量,或尝试使用c2机器系列。

于 2021-01-16T04:54:33.480 回答