如何在spark 1.5.0上运行的应用程序调整堆内和堆外内存?通过使用“-XX PrintGCDetails -XX:PrintGCTimeStamps”,我注意到在从文件$ SPARK_HOME / work / application_id / stdout中检索到的GC报告中,JVM大约每隔1分钟就会保留GC . 虽然通过--executor-memory 50g选项和各种--conf spark.storage.memoryFranction值分配了50g执行程序内存,但PSYoungGen区域总是占用(PSYoungGen ParOldGen)的30% . PSPermGen始终保持在54,272KB的值,使用率为99% .
我尝试过的:
- spark.executor.extraJavaOptions = '-XX:Xms50g -XX:Xmx50g -XX:PermSize=8g'
虽然大量博客确保此设置有效,但它不起作用 .
在spark-env.sh和spark-default.conf中设置
- JAVA_OPTS
它不起作用
在spark 1.5.0中没有明确的堆内和堆外内存设置,我的问题的解决方案是什么?谢谢!
1 回答
由于你没有发布任何实际数据,只有你自己的数据分析,我不能肯定地说,但一般来说每分钟1个GC事件是完全正常的,甚至相当不错 . 所以不需要调整 .