常见问题处理
为了确保除MOT可用内存之外openGauss仍保留至少2GB可用内存空间,MOT会在数据库启动期间验证(max_mot_global_memory + max_mot_local_memory) + 2GB < max_process_memory。如果无法满足该要求,应当调整MOT内存限制。这种调整是在启动期间进行的,并相应地计算MOT最大内存的值。
注意:
MOT最大内存是一个逻辑计算值,它是配置的设置或其调整后的值(max_mot_global_memory + max_mot_local_memory)。
当MOT配置的最大内存配置过高时会给出类似如下告警:
[WARNING] <Configuration> MOT engine maximum memory definitions (global: 9830 MB, local: 1843 MB, session large store: 0 MB, total: 11673 MB) breach GaussDB maximum process memory restriction (12288 MB) and/or total system memory (64243 MB). MOT values shall be adjusted accordingly to preserve required gap (2048 MB).
当MOT自动调整内存限制时会给出类似如下告警:
[WARNING] Adjusting MOT memory limits: global = 8623 MB, local = 1617 MB, session large store = 0 MB, total = 10240 MB
此外,当总的内存使用量接近选定的内存限制时,MOT禁止插入新数据。可以通过mot.conf文件的high_red_mark_percent配置项设置停止插入新数据时max_mot_memory的百分比阈值。默认值是90,意味着90%。如果超过阈值后仍然插入新数据,将会向用户返回一个错误,也会记录在数据库日志文件中。