在Vertica 8中,"元数据"资源池被引入。 The documentation describes it as:
跟踪为目录数据和存储数据结构分配的内存的池。
它似乎不重要,因为文档说明了如何使用EnableMetadataMemoryTracking参数禁用它。
这个池用于什么?由于它消耗了相当多的RAM(我们服务器上的4Gb),我可以安全地禁用它吗?
答案 0 :(得分:1)
元数据RAM它的vertica目录大小,动态保留vertica进程为目录分配的RAM。
例如,你有总共32GB的RAM,vertica将使用总ram的95%~30.5 GB,但你有大型目录~3GB(吨对象)和vertica进程消耗几个GB - > vertica进程使用RAM,根据一般池必须是免费的查询 - >会导致饥饿。如果您使用动态借用目录所需的通用RAM的元数据池,您的资源管理会更好。
BTW为什么你有4GB的RAM目录?在IDLE中它有多大的RAM顶级进程消耗了多少?重启后消耗量会减少并随着时间的推移而增长吗?
创建了一个简单的脚本,用于创建1000个包含100个int列的表,插入1行并分析统计信息。您可以看到目录大小如何随对象数量增长以及它如何影响元数据池和vertica进程RAM:
dbadmin=> select (select count(1) from tables),node_name,memory_size_kb,memory_size_actual_kb from resource_pool_status where pool_name ilike 'metadata';
?column? | node_name | memory_size_kb | memory_size_actual_kb
----------+--------------------+----------------+-----------------------
218 | v_vertica_node0001 | 108622 | 108622
218 | v_vertica_node0002 | 119596 | 119596
218 | v_vertica_node0003 | 122374 | 122374
(3 rows)
dbadmin=> select (select count(1) from tables),node_name,memory_size_kb,memory_size_actual_kb from resource_pool_status where pool_name ilike 'metadata'; \! top -n 1 | grep vertica
?column? | node_name | memory_size_kb | memory_size_actual_kb
----------+--------------------+----------------+-----------------------
513 | v_vertica_node0001 | 229210 | 229210
513 | v_vertica_node0002 | 281601 | 281601
513 | v_vertica_node0003 | 289407 | 289407
(3 rows)
476260 dbadmin 20 0 5391m 407m 39m S 109.2 2.6 21:25.64 vertica
dbadmin=> select (select count(1) from tables),node_name,memory_size_kb,memory_size_actual_kb from resource_pool_status where pool_name ilike 'metadata'; \! top -n 1 | grep vertica
?column? | node_name | memory_size_kb | memory_size_actual_kb
----------+--------------------+----------------+-----------------------
825 | v_vertica_node0001 | 352359 | 352359
825 | v_vertica_node0002 | 448032 | 448032
825 | v_vertica_node0003 | 456439 | 456439
(3 rows)
476260 dbadmin 20 0 5564m 554m 39m S 79.2 3.5 38:16.91 vertica
dbadmin=> select (select count(1) from tables),node_name,memory_size_kb,memory_size_actual_kb from resource_pool_status where pool_name ilike 'metadata'; \! top -n 1 | grep vertica
?column? | node_name | memory_size_kb | memory_size_actual_kb
----------+--------------------+----------------+-----------------------
1143 | v_vertica_node0001 | 489867 | 489867
1143 | v_vertica_node0002 | 627409 | 627409
1143 | v_vertica_node0003 | 635616 | 635616
(3 rows)
476260 dbadmin 20 0 5692m 711m 39m S 0.7 4.5 58:13.61 vertica