Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache storm 喷口之间的高延迟->;螺栓和螺栓->;螺栓_Apache Storm - Fatal编程技术网

Apache storm 喷口之间的高延迟->;螺栓和螺栓->;螺栓

Apache storm 喷口之间的高延迟->;螺栓和螺栓->;螺栓,apache-storm,Apache Storm,在我的拓扑结构中,当元组从喷口传输到螺栓或从螺栓传输到螺栓时,我看到大约1-2毫秒的延迟。我使用纳秒时间戳计算延迟,因为整个拓扑在单个工作进程中运行。 拓扑在集群中运行,该集群在支持生产的硬件中运行 据我所知,在这种情况下,元组不需要序列化/反序列化,因为所有内容都在单个JVM中。我已将大多数喷口和螺栓的平行度提示设置为5,喷口仅以每秒100的速率生成事件。我不认为高延迟是由于事件排队造成的,因为我看不到延迟随时间而增加。内存也没有增加。日志级别设置为错误。CPU使用率在200%到300%之间

在我的拓扑结构中,当元组从喷口传输到螺栓或从螺栓传输到螺栓时,我看到大约1-2毫秒的延迟。我使用纳秒时间戳计算延迟,因为整个拓扑在单个工作进程中运行。 拓扑在集群中运行,该集群在支持生产的硬件中运行

据我所知,在这种情况下,元组不需要序列化/反序列化,因为所有内容都在单个JVM中。我已将大多数喷口和螺栓的平行度提示设置为5,喷口仅以每秒100的速率生成事件。我不认为高延迟是由于事件排队造成的,因为我看不到延迟随时间而增加。内存也没有增加。日志级别设置为错误。CPU使用率在200%到300%之间


是什么导致了这种延迟?我只希望元组传输有几个us。

我假设您使用的是一个发布的Storm版本,而不是2.0.0-SNAPSHOT,因为排队实现在该版本中发生了更改


我认为延迟很可能是因为Storm在将元组交付给消费者之前先将它们打包。看一看,同时也看一看该文件中的Flusher类。当喷口/螺栓发布元组时,它将被放入_currentBatch列表中。它会一直保持在那里,直到收到足够的元组以使批处理“足够大”(您可以查看_inputBatchSize变量以确定何时是),或者直到触发冲洗器(默认情况下每毫秒发生一次)。

我假设您使用的是已发布的Storm版本之一,而不是2.0.0-SNAPSHOT,因为排队实现在该版本中已更改


我认为延迟很可能是因为Storm在将元组交付给消费者之前先将它们打包。看一看,同时也看一看该文件中的Flusher类。当喷口/螺栓发布元组时,它将被放入_currentBatch列表中。它会一直保持在那里,直到收到足够的元组以使批处理“足够大”(您可以查看_inputBatchSize变量以确定何时足够大),或者直到触发冲洗器(默认情况下每毫秒发生一次)。

我使用的是稳定的1.0.6版本。我试过你的建议。基本上,我将批大小设置为1,超时设置为1ms。它确实改善了情况,但平均延迟仍在600 us以上,有时达到2000 us左右。实际上,当所有的东西都在同一个JVM中运行时,我在寻找1-40us范围内的元组的低延迟传输。这在暴风雨中可行吗?或者我对我的低延迟应用程序的框架进行了错误的评估?Storm通常会在多台计算机上群集运行,所以我认为由于网络延迟,您通常会看到更高的延迟。我认为Storm倾向于优化吞吐量而不是延迟。试着在storm用户邮件列表()上发布您的用例,以及为什么需要这种延迟,那里的人可能会知道这是否可能。干杯,我在那个群人中发布了,他们确认我看到的延迟是正常的,除非我需要升级到不稳定的版本2。我使用的是稳定的1.0.6版本。我试过你的建议。基本上,我将批大小设置为1,超时设置为1ms。它确实改善了情况,但平均延迟仍在600 us以上,有时达到2000 us左右。实际上,当所有的东西都在同一个JVM中运行时,我在寻找1-40us范围内的元组的低延迟传输。这在暴风雨中可行吗?或者我对我的低延迟应用程序的框架进行了错误的评估?Storm通常会在多台计算机上群集运行,所以我认为由于网络延迟,您通常会看到更高的延迟。我认为Storm倾向于优化吞吐量而不是延迟。试着在storm用户邮件列表()上发布您的用例,以及为什么需要这种延迟,那里的人可能会知道这是否可能。干杯,我在那个群人中发布了,他们确认我看到的延迟是常见的,除非我需要升级到不稳定的版本2。