Aerospike过程占用大量内存

时间:2018-09-29 10:33:16

标签: linux ram aerospike

Aerospike社区版内部版本3.12.0

我们有一个由32个节点组成的集群,其中一个命名空间有多个集合。我在日志中看到以下内容:

  

2018年9月29日15:36:21 GMT + 0530:INFO(信息):(ticker.c:462){myNamespace}内存使用情况:总字节23816040182索引字节3222810368 sindex字节0数据字节20593229814用过的pct 49.29

     

2018年9月29日15:36:21 GMT + 0530:INFO(info):(ticker.c:170)NODE-ID bb99a89200a0102 CLUSTER-SIZE 32

     

2018年9月29日15:36:21 GMT + 0530:INFO(信息):(ticker.c:253)系统内存:空闲字节5095788空闲字节9堆KB(30851170,49358076,52596736)堆-efficiency-pct 58.7

     

2018年9月29日15:36:21 GMT + 0530:INFO(信息):(ticker.c:267)进行中:tsvc-q 0信息-q 0 nsup-delete-q 0 rw-hash 0代理-哈希0树-gc-q 0

所以我了解的是(23816040182 + 3222810368)= 27038850550字节i.e. 27G。我的包装盒上有52G RAM,但是航空加气过程消耗了90%的RAM:

>ps aux  | grep asd
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND    
root     28994 14.3 90.5 59059460 49552192 ?   Ssl  Jun22 20539:09 /usr/bin/asd --config-file /etc/aerospike/aerospike.conf


>free -mh
             total       used       free     shared    buffers     cached
Mem:           52G        51G       303M         0B        12M       3.7G
-/+ buffers/cache:        48G       4.0G
Swap:           0B         0B         0B

对于同一节点,我在用户界面中看到以下内容:

enter image description here

因此,数据+索引仅为27G,而使用的内存为49G。无法理解这种巨大的差异以及如何避免这种情况。

我们还删除了约1.2亿行,但在内存使用方面仍然没有太大改善,唯一的选择似乎是重新启动该框,这可能与此issue有关。

1 个答案:

答案 0 :(得分:2)

似乎您的内存实际上是零散的,但让我们分解一下不同的数字:

1- memory-usage: total-bytes 23816040182 index-bytes 3222810368 sindex-bytes 0 data-bytes 20593229814 used-pct 49.29

所占的总内存为23816040182字节(〜22.18 GiB),这是您在主索引3222810368中的拥有量(50,356,412条记录,每条64字节)与数据本身(即您在内存中的数据)之和),即20593229814(〜19.2 GiB)。主索引部分位于共享内存中。

2- system-memory: free-kbytes 5095788 free-pct 9 heap-kbytes (30851170,49358076,52596736) heap-efficiency-pct 58.7

报告的可用系统内存在3.12版本中不正确。不幸的是,您的可用空间不足(请参阅修复程序[AER-5810]-(状态)日志行情记录过度报告了版本3.16.0.4中的可用系统内存。

更有趣的是堆用法(来自log reference manual),您可以将其读取为:

您分配了30851170 KiB(〜29.4 GiB),但是总共分配了52596736 KiB(〜50.1 GiB映射),这效率不高(效率58.7%),表明有些碎片。顺便说一下,这不包括共享内存。对于19 GiB数据,分配的29 GiB似乎有点高。我希望所有使用的其他内部结构的开销都更少。

主要问题是效率低下,但碎片化。您有没有启用THP?我实际上找到了这篇文章(Understanding Linux Memory Usage),它也遍历了那些内存报告详细信息,并遍历了可能导致此问题的“大页面”配置。