Spark 的内存机制算是大数据圈里比较常被拿来研究的一块,搞明白了,性能调优起来真能省不少心。这篇《Apache Spark 内存管理详解》讲得还挺细,不光是讲了Executor
的堆内堆外怎么分、内存怎么动态调整,还聊到了各种 GC、内存溢出怎么,挺接地气的,带着场景来讲。
像是你想知道--executor-memory
该怎么配,或者storage memory
跟execution memory
到底啥时候该多点,文章里都有,而且语气不是那种照本宣科,看的时候不容易犯困。
还有个点我挺喜欢,它不是只讲配置,还告诉你背后的逻辑,比如为什么要堆外内存、什么时候适合开压缩、Kryo这种序列化工具为啥能省内存。看完你基本能对 Spark 内存的底层运行有个的认知,调参数也不那么瞎蒙了。
顺带推荐几个相关内容,如果你想更深入挖,比如看看DB2
、Oracle
或者PostgreSQL
的内存策略,也可以顺着文章后面那些链接去逛一圈,都是些还不错的参考资源。
如果你最近刚好在优化Spark
的任务,或者老是遇到 OOM,不妨花钟读一下,应该能有点启发。