Apache Spark 1.6.0 RC3にアップグレードしようとしました。私のアプリケーションは現在、ほぼすべてのタスクのために、これらのエラーをスパム:デバッグ「スパーク1.6.0の「管理されたメモリリークが検出されました」
Managed memory leak detected; size = 15735058 bytes, TID = 830
私はDEBUG
にorg.apache.spark.memory.TaskMemoryManager
のためのログレベルを設定し、ログに表示しました:
I2015-12-18 16:54:41,125 TaskSetManager: Starting task 0.0 in stage 7.0 (TID 6, localhost, partition 0,NODE_LOCAL, 3026 bytes)
I2015-12-18 16:54:41,125 Executor: Running task 0.0 in stage 7.0 (TID 6)
I2015-12-18 16:54:41,130 ShuffleBlockFetcherIterator: Getting 1 non-empty blocks out of 1 blocks
I2015-12-18 16:54:41,130 ShuffleBlockFetcherIterator: Started 0 remote fetches in 0 ms
D2015-12-18 16:54:41,188 TaskMemoryManager: Task 6 acquire 5.0 MB for null
I2015-12-18 16:54:41,199 ShuffleBlockFetcherIterator: Getting 1 non-empty blocks out of 1 blocks
I2015-12-18 16:54:41,199 ShuffleBlockFetcherIterator: Started 0 remote fetches in 0 ms
D2015-12-18 16:54:41,262 TaskMemoryManager: Task 6 acquire 5.0 MB for null
D2015-12-18 16:54:41,397 TaskMemoryManager: Task 6 release 5.0 MB from null
E2015-12-18 16:54:41,398 Executor: Managed memory leak detected; size = 5245464 bytes, TID = 6
はどのようにこれらのエラーをデバッグするのですか?割り振りと割り当て解除のためにスタックトレースを記録する方法があるので、どのようなリークを見つけることができますか?
新しい統合メモリマネージャー(SPARK-10000)についてよくわかりません。漏れが私のせいかもしれないのでしょうか、それともスパークバグでしょうか?
DEBUG Levelでロガーを設定して実行しようとしましたか? – eliasah
ありがとう!私は '' 'で実行し、割り当てと割り当て解除を記録します。まだ何が起こっているのか分かりません:)。私は少し詳細を追加します。 –
私はログを追加しました。 5MBの 'acquire'呼び出しと、5MBの' release'呼び出しという2つの呼び出しがあります。しかし、なぜ? –