鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

内存资源占用过大导致节点异常的解决方法

问题现象描述

spark-submit提交任务测试LDA原生算法,使用HiBench生成数据集(样本数量20M,特征维度200K),出现无法连接的情况。

关键过程、根本原因分析

统计环境使用内存情况,总内存为384GB,空闲内存364GB,运行时,LDA原生算法任务占用内存最大可到363.1GB,整个系统仅剩0.9GB空闲内存,内存占用高达99.77%,算法执行计算过程占用内存过多,导致操作系统停止响应。

为了使性能更优,算法配置num-executors、executor-memory等资源参数基本达到系统内存99%,当测试数据集较大时,如LDA原生算法在跑数据集D20M200K时,占用内存过多,可能会触发操作系统停止响应,导致无法使用。

结论、解决方案及效果

除了性能调试外等极限场景,日常使用需要考虑系统稳定性问题,建议Spark任务资源参数根据集群实际可用资源来配置,不建议把系统资源都占满。