---
title: 内存资源占用过大导致节点异常的解决方法
description: "spark-submit提交任务测试LDA开源版本算法，使用HiBench生成数据集（样本数量20M，特征维度200K），出现无法连接的情况。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/appAccelFeatures/algorithmaccelf_ml/kunpengbdssparkml_20_0047.html
sourcePath: /source/zh/kunpengbds/appAccelFeatures/algorithmaccelf_ml/kunpengbdssparkml_20_0047.html
indexId: b7e5ad7459f98c7a9370e01512f67641e59ec254e9c0723c6a036fb2d2cd58c488
---
# 内存资源占用过大导致节点异常的解决方法

#### 问题现象描述

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


#### 关键过程、根本原因分析

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


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


#### 结论、解决方案及效果

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