内存管理参数
下表介绍用于管理 Vertica 内存利用率的参数。
当心
只能在 Vertica 支持的指导下修改这些参数。- MemoryPollerIntervalSec
- 指定 Vertica 内存轮询器检查 Vertica 内存利用率是否低于几个配置参数的阈值的频率(以秒为单位,见下文):
-
MemoryPollerMallocBloatThreshold -
MemoryPollerReportThreshold -
MemoryPollerTrimThreshold
默认值: 2
-
- MemoryPollerMallocBloatThreshold
- glibc 内存膨胀的阈值。
内存轮询器将调用 glibc 函数
malloc_info(),以获取 malloc 中的空闲内存量。然后它将MemoryPollerMallocBloatThreshold(默认设置为 0.3)与以下表达式进行比较:free‑memory‑in‑malloc / RSS如果此表达式的计算结果大于
MemoryPollerMallocBloatThreshold,内存轮询器将调用 glibc 函数malloc_trim()。此函数从 malloc 中回收空闲内存,并将其返回给操作系统。调用malloc_trim()的详细信息将写入系统表MEMORY_EVENTS。要禁用此阈值的轮询,请将参数设置为 0。
默认值: 0.3
- MemoryPollerReportThreshold
- 确定 Vertica 内存轮询器是否写入报告的内存利用率阈值。
内存轮询器将
MemoryPollerReportThreshold与以下表达式进行比较:RSS / available‑memory当此表达式的计算结果大于
MemoryPollerReportThreshold(默认设置为 0.93)时,内存轮询器会将报告写入 Vertica 工作目录中的MemoryReport.log。此报告包括有关 Vertica 内存池、单个查询和会话消耗的内存量等信息。内存轮询器还将报告作为事件记录在系统表MEMORY_EVENTS中,并设置EVENT_TYPE为MEMORY_REPORT。要禁用此阈值的轮询,请将参数设置为 0。
默认值: 0.93
- MemoryPollerTrimThreshold
- 内存轮询器开始检查是否修剪 glibc 分配的内存的阈值。
内存轮询器将
MemoryPollerTrimThreshold(默认设置为 0.83)与以下表达式进行比较:RSS / available‑memory如果此表达式的计算结果大于
MemoryPollerTrimThreshold,则内存轮询器开始检查下一个阈值(在MemoryPollerMallocBloatThreshold中设置)是否存在 glibc 内存膨胀。要禁用此阈值的轮询,请将参数设置为 0。这样做也会禁用
MemoryPollerMallocBloatThreshold的轮询。默认值: 0.83