GC使用的是CMS,基本上所有的GC都能保证在1s以内,但是偶尔的会出现超长时间的GC的情况,但是经过观察发生长时间的GC的时候并没有大量的数据写入或查询。
贴一下长时间GC的日志:
经过观察,平时出现15g老年代堆内存GC到1个多G的时候也不过是200多毫秒,但是此次GC事件则令人意外的长,耗时6.8s。
目前怀疑原因可能是GC时CPU利用率较高导致GC速度变慢,不知道还有没有可能会是别的原因,还请大神指教。
贴一下长时间GC的日志:
[2018-08-28 09:17:48,393][INFO ][monitor.jvm ] [es241] [gc][old][2904280][15] duration [6.8s], collections [1]/[7.4s], total [6.8s]/[19.4s], memory [15.6gb]->[1.6gb]/[21.6gb], all_pools {[young] [1.4gb]->[47.6mb]/[1.4gb]}{[survivor] [172.5mb]->[0b]/[191.3mb]}{[old] [14gb]->[1.6gb]/[19.9gb]}
经过观察,平时出现15g老年代堆内存GC到1个多G的时候也不过是200多毫秒,但是此次GC事件则令人意外的长,耗时6.8s。
目前怀疑原因可能是GC时CPU利用率较高导致GC速度变慢,不知道还有没有可能会是别的原因,还请大神指教。
4 个回复
JackGe
赞同来自: tianhuang101
我曾经遇到的情况是es运行在docker环境中,jdk8未修复获取docker环境下获取cpu核数,而是获取到物理机cpu核数,jvm垃圾回收线程个数不合理导致gc耗时变长。
medcl - 今晚打老虎。
赞同来自:
zqc0512 - andy zhou
赞同来自:
code4j - coder github: https://github.com/rpgmakervx
赞同来自: