Google cloud dataflow 为什么数据流使用额外的磁盘?

Google cloud dataflow 为什么数据流使用额外的磁盘?,google-cloud-dataflow,Google Cloud Dataflow,当我看到数据流计算引擎实例的详细信息时,我可以看到正在使用的两类磁盘—(1)引导磁盘和本地磁盘,以及(2)其他磁盘 我可以看到,我使用diskSizeGb选项指定的大小决定了“引导磁盘和本地磁盘”类别下单个磁盘的大小。我的工作不是很繁重,而是另外使用8个40GB的磁盘 其他磁盘的用途是什么?是否可以限制它们的大小/数量?数据流将为您的作业计算引擎VM实例创建,也称为 要处理输入数据并存储临时数据 在批处理模式下,每个持久磁盘的默认大小为250 GB,在流模式下为400 GB。40GB与默认值相差

当我看到数据流计算引擎实例的详细信息时,我可以看到正在使用的两类磁盘—(1)引导磁盘和本地磁盘,以及(2)其他磁盘

我可以看到,我使用
diskSizeGb
选项指定的大小决定了“引导磁盘和本地磁盘”类别下单个磁盘的大小。我的工作不是很繁重,而是另外使用8个40GB的磁盘


其他磁盘的用途是什么?是否可以限制它们的大小/数量?

数据流将为您的作业计算引擎VM实例创建,也称为

要处理输入数据并存储临时数据

在批处理模式下,每个持久磁盘的默认大小为250 GB,在流模式下为400 GB。40GB与默认值相差甚远


在这种情况下,数据流服务将为您的工作人员跨越更多磁盘。如果您想保持辅助进程与磁盘的比例为1:1,现有答案解释了磁盘的数量以及有关磁盘的信息,但它没有回答主要问题:为什么每个辅助进程有这么多磁盘

为什么数据流每个工作者需要几个磁盘? 数据流对流作业进行负载平衡的方式是为每个磁盘分配一系列密钥。每个密钥的持久状态存储在这些磁盘中

如果分配给其永久磁盘的范围具有非常高的容量,则工作进程可能会过载。为了实现负载平衡,数据流可以通过将持久磁盘传输到不同的工作进程,将一个范围从一个工作进程移动到另一个工作进程

这就是为什么Dataflow每个工作进程使用多个磁盘:因为这允许它通过将磁盘从一个工作进程移动到另一个工作进程来进行负载平衡和自动缩放。

这不是真的,请参见它的说明:计算引擎的使用基于平均工作进程数,而持久磁盘使用率是基于
--maxNumWorkers
的确切数量。永久性磁盘被重新分配,这样每个工作进程都可以获得相同数量的连接磁盘。