我正在使用 gremlin-server (v3.02) 和 titan-hbase。我使用的是默认配置设置。服务器是 8GB 内存和 4 核。
经过几个小时的工作,服务器停止响应查询请求.. 必须说服务器上的请求强度不高,几乎是中低(每小时几个请求,可能低于那个)。
当检查 gremlin 的最后一条服务器日志消息时,我看到它与 Hbase 会话超时有关,并重试重新连接 hbase。
此时服务器 CPU 和内存为 90-100%。
Redhat 上的 JDK 1.8.0_45-b14 64bit
使用 jstat -gc 我可以将所有时间都花在 GC 上,oldgen 也是 100%。
我已经设置了“-Xmx 8g”,但是 htop 中的虚拟内存高达 12g,通过 xmx 的一些测试,我发现虚拟内存总是大约为“-Xmx + 4g”。
Jmap -histo 给了我大约 2g 的 [B (Byte[]) 以及 CacheRelation 的 gig 和 CacheVertex 的 gig。
重新启动 gremlin-server 后,一切恢复正常,并再次工作。
有任何想法吗?