
# 在Beeline/JDBCServer模式下连续运行10T的TPCDS测试套会出现内存不足的现象
#### 问题
在Driver内存配置为10G时，Beeline/JDBCServer模式下连续运行10T的TPCDS测试套，会出现因为Driver内存不足导致SQL语句执行失败的现象。
#### 回答
当前在默认配置下，在内存中保留的Job和Stage的UI数据个数为1000个。
当前大集群优化已增加将UI数据溢出到磁盘的优化，其溢出条件是每个Stage中的UI数据大小达到最小阈值5MB。如果每个Stage的task数较小，那么其UI数据大小可能达不到该阈值，从而导致该Stage的UI数据一直缓存在内存中，直到UI数据个数到达保留的上限值（当前默认值为1000个），旧的UI数据才会在内存中被清除。
因此，在将旧的UI数据从内存中清除之前，UI数据会占用大量内存，从而导致执行10T的TPCDS测试套时出现Driver内存不足的现象。
规避措施：
- 根据业务需要，配置合适的需要保留的Job和Stage的UI数据个数，即配置"spark.ui.retainedJobs"和"spark.ui.retainedStages"参数。详细信息请参考[常用参数](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1931.html)中的[表13](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1931.html#mrs_01_1931__t681877b034a54c50a58b9e1864345ee4)。
- 如果需要保留的Job和Stage的UI数据个数较多，可通过配置"spark.driver.memory"参数，适当增大Driver的内存。详细信息请参考[常用参数](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1931.html)中的[表10](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1931.html#mrs_01_1931__t846a81171d4c4af1908c5cf55578f022)。
 
