Vertica"元数据"有什么用?资源池?

时间:2017-08-23 10:37:33

标签: vertica

在Vertica 8中,"元数据"资源池被引入。 The documentation describes it as

  

跟踪为目录数据和存储数据结构分配的内存的池。

它似乎不重要,因为文档说明了如何使用EnableMetadataMemoryTracking参数禁用它。

这个池用于什么?由于它消耗了相当多的RAM(我们服务器上的4Gb),我可以安全地禁用它吗?

1 个答案:

答案 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