我正在使用yourkit进行内存分析,为了简化spark应用程序的问题,我正在directrunner模式下运行该应用程序。我正在测试的机器有32个核。捕获的快照如下所示:
“directrunner worker”有32个线程,看起来我的假设是错误的,directrunner只占用一个线程。我的问题是-是否应该限制并行化线程的数量?在快照中,一个线程占用250到350 mb,这将不可避免地崩溃。
另一个问题是我不确定我是否应该遵循http://spark.apache.org/developer-tools.html#profiling 在我的例子中,文档似乎是针对使用sparkcluster运行的应用程序的,但是由于我使用的是directrunner(出于调试目的),那么也许我所做的一切都足够好-有人有过这样的经验吗?
感谢您的指点!:)
ps:我的头脑被2.15亿个对象的创建所迷惑,但这应该随着线程数的减少而减少。但是,每个线程大约有600万个对象似乎很多。
暂无答案!
目前还没有任何答案,快来回答吧!