我有一个每分钟运行一次的spark批处理作业,每批处理大约200k条记录。该应用程序通常的处理延迟为~30秒。在应用程序中,对于每个请求,我们向DynamoDB发出一个写请求。有时,服务器端DDB写入延迟约为5毫秒,而不是3.5毫秒(比通常的延迟3.5毫秒增加了约30%)。这会导致应用程序的总体延迟增加6倍(~3分钟)。
DDB调用的亚秒级延迟对app整体延迟有6倍的影响?
PS:我已经通过重叠DDB put延迟和spark应用处理延迟的云观察图验证了根本原因。
谢谢,维诺德。
发布于 2021-08-17 09:29:31
这只是一个大概的估计:
如果平均延迟为3.5毫秒,大约一半的200k记录在5毫秒内处理,而不是3.5毫秒,这将给我们留下:
200.000 * 0.5 * (5 - 3.5) = 150.000 (ms)总延迟,即150秒或2.5分钟。我不知道进程的并行化程度如何,但这似乎在预期的延迟之内。
https://stackoverflow.com/questions/68768451
复制相似问题