云数据库 GAUSSDB-其他优化器选项:llvm_max_memory

时间:2024-11-13 14:45:05

llvm_max_memory

参数说明:此参数设置Codegen编译产生的IR(包括缓存的和正在使用的)所占用的最大内存。Codegen使用的内存不采用预占的方式申请,属于max_dynamic_memory的一部分,且受llvm_max_memory参数的限制。

参数类型:整型

参数单位:kB

取值范围:0 ~ 2147483647,超过设定值则不再使用Codegen执行逻辑,降级为原有递归执行逻辑。当到达该上限触发执行降级后,调小llvm_max_memory的值无法立即释放多余IR所占用的内存,实际IR所占用的内存随着对应的SQL执行完毕后释放。

默认值:131072(即128MB)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为100,不带单位,表示100kB;设置为16MB,带单位,表示16MB。取值如果要带单位,必须为kB、MB、GB。

设置建议:推荐使用默认值,当系统视图gs_total_memory_detail中llvm_used_memory项到达默认值上限且业务的性能瓶颈在表达式执行流程时再做修改。

设置不当的风险与影响:

  • 最大占用内存如果设置过小,则易使系统不再使用Codegen执行逻辑,影响功能使用。
  • 最大占用内存如果设置过大,可能会造成LLVM的编译过多占用其他线程的资源,造成系统整体性能下降。
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0345.html