http://arganzheng.life/spark-executor-memory-management.html
https://zhuanlan.zhihu.com/p/115888408
調(diào)優(yōu)方面的:https://blog.csdn.net/a805814077/article/details/106682741/?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242
依照java內(nèi)存的劃分,其堆內(nèi)存分為eden、survivor*2和tenured部分,同時(shí)刻只有一個(gè)survivor可用,因而指定的堆內(nèi)存實(shí)際可用的內(nèi)存即Runtime.getRuntime.maxMemory查到的通常比Xmx指定的要小,一般為90-95%的樣子,在這5g的executor中其值為4772593664,約為88%。
(4772593664-300102401024)0.6=值為2.67G,這就是上面看到的2.7G的來源,實(shí)際這里顯示時(shí)不是將字節(jié)除以102410241024,而是直接除以10001000*1000得到的。
簡(jiǎn)單點(diǎn):(5G * 90% -0.3)*0.6 = 2.52 實(shí)際上比這個(gè)大一點(diǎn)點(diǎn)