使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。

内存紧张,FGC停不下来

Elasticsearch | 作者 simooge | 发布于2018年01月24日 | 阅读数:6582

客套话不说了哈,请社区里各路高人,指点以下,有点奔溃了。
 
问题是这样:存储的是监控相关数据。
日均7.5亿条数据,副本数1. 算上副本,日均新增数据1.8T,只保存2天。查询入口只有UI点击,日pv在100以内(都是有问题才会去看监控)
关键是有18台物理机, 128G内存,单机双节点。每个节点Heap 31G。只能跑一天到2天。。
 
ES版本: 1.7.1 
GC配置比较简单: G1, pause 200ms
 
运行一段时间后,大概一天后,陆续开始FGC,时间从15s ~ 5min不等,应该是mix gc失败后开始串行GC.
老年代基本吃完所有region,eden只有200M。
 
重启前,jmap了一下, [J 15G, 貌似是Long数组,但是不知道是ES的哪一块内存。
 
num     #instances         #bytes  class name
----------------------------------------------
   1:       3807192    15304408752  [J
   2:       9767447     7021834000  [B
   3:      25070955     1784529744  [C
   4:      14629532     1170362560  org.elasticsearch.common.cache.LocalCache$Segment
   5:      19221904      750032456  [Ljava.lang.Object;
   6:      24674649      592191576  java.lang.String
   7:       5196381      540423624  org.elasticsearch.action.index.IndexRequest
   8:      14667374      469355968  java.util.concurrent.locks.ReentrantLock$NonfairSync
   9:       3657374      468143872  org.elasticsearch.common.cache.LocalCache
  10:      15372723      245963568  java.util.concurrent.atomic.AtomicInteger
  11:      14629847      234077552  java.util.concurrent.atomic.AtomicReferenceArray
  12:       7306511      233808352  org.elasticsearch.common.cache.LocalCache$StrongEntry
  13:       6233374      199467968  java.util.HashMap$Node
  14:       5315217      170086944  org.elasticsearch.common.joda.time.format.PeriodFormatter
  15:       5315215      170086880  org.elasticsearch.common.unit.TimeValue
  16:       3841132      153645280  java.util.LinkedHashMap$Entry
  17:       4173918      133565376  org.elasticsearch.action.bulk.BulkItemResponse
  18:       1058384      131618928  [Ljava.util.HashMap$Node;
  19:       5196822      124723728  org.elasticsearch.common.bytes.BytesArray
  20:       3657374      117036112  [Lorg.elasticsearch.common.cache.LocalCache$Segment;
  21:       7307094      116913504  org.elasticsearch.common.cache.LocalCache$StrongValueReference
  22:       2792201      111688040  java.util.TreeMap$Entry
  23:       1866112       89573376  org.elasticsearch.action.index.IndexResponse
  24:       3657344       87776256  org.apache.lucene.util.FixedBitSet
  25:       3653252       87678048  org.elasticsearch.index.cache.fixedbitset.FixedBitSetFilterCache$Value
...
 
 
_cat看堆内存使用基本如下(保持在500m附近, siwm在1g附近,贴了一条)。
load  hp     hc  uptime      fm    fcm qcm im  pm      sm    siwm  siwmx   svmm     sfbm
18.61 86 26.6gb  18.5h 124.6mb   24mb  0b 0b -1b 593.3mb 873.8mb 10.9gb 21.2mb  918.3mb
....
 
目前我们的数据里有大量的数字类型,但是没有自定义mapping,都转成long保存了,联想到doc value,jmap里的数组,列式存储等等,知识体系不健全,无法准确定位,下午准备改下mapping,明天再折腾一下~ 
 
会有人回么? 哎呀,第一次在这个社区发帖子,还是这么老的版本。 waiting....
已邀请:

要回复问题请先登录注册