簡體   English   中英

為什么在 flink 中使用 Thread.sleep 會明顯降低性能?

[英]Why use Thread.sleep in flink decrease performance obviously?

我們在比較storm和flink。 我們所做的是開發風暴拓撲邏輯到 flink 應用程序。 在storm topologybolt中有使用Thread.sleep(100),但是在flink app中使用時,flink app性能不好。 這是我們使用 Flink 並行度 80 的測試結果:

使用來自 kafka 的 161073 數據並在下一個任務中計算我們的業務邏輯,並將最后一個 sink 結果保存到文件中。 在 Compute 和 Redis 任務中使用 Thread.sleep(100) 時,大約需要 4 分鍾。 但是如果我們不使用 Thread.sleep(100),它只需要 6 秒。

我的 Flink 應用

我認為這主要是由於背壓

背壓會導致上游處理中斷,等待下游算子消費

欲了解更多信息,請參閱

https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/ops/monitoring/back_pressure/

我想知道Thread.sleep(100)位於哪里? 如果它發生在處理數據的 function 中,那是有道理的。 每次處理記錄時都會調用Thread.sleep(100) 由於總共有 161073 條記錄,所以總的休眠時間是 161073 / 80 * 100 / 1000 = 201.3 秒,大約是 4 分鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM