执行insert select 报内存不足(heap usage has exceed MemoryLimit)
操作类型:
insert … select …
错误信息:
DETAIL: (GBA-01EX-700) Gbase general error: thd ...,BLK_CELL: return NULL in alloc(...),HeapUsed(...,...,...),SystemUsed(...,...,...),
heap usage has exceed MemoryLimit, SystemMemStatus:memfree:...,swapfree:...
原因:
内存不足,该集群为虚拟机集群,节点内存有限。
解决办法:
set global _gbase_cache_drop_hot_data=1
set global _gbase_cache_drop_unlock_cell_count = 50000
解释:
_gbase_cache_drop_hot_data 参数为开关参数,增加了一种 DC Cache 淘汰管理
策略,允许释放 unlock 状态的 DC 数据而不用考虑该数据是否属于热数据(被多
次使用的数据)。该参数默认取值为 0,建议设置为 1,即允许清除 unlock 状态的
热数据。
_gbase_cache_drop_unlock_cell_count 参数表示一次释放 unlock 状态的 DC 数
量,默认取值为 1000。
当 DC 堆 满 的 时 候 , 执 行 unlock 状态的 DC 清 理 释 放 , 一 次 释 放
_gbase_cache_drop_unlock_cell_count 个,如果完成一次释放后依然满足
_gbase_cache_drop_unlock_cell_count 个 unlock 状态的 DC 待释放,则等待
_gbase_cache_drop_delay_time 秒后再次进行 unlock 状态 DC 释放。
可以调大_gbase_cache_drop_unlock_cell_count 参数,一次尽量多的释放 DC。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526