titandb gremlin-server内存不足如何设置#jsr223.groovy.engine.keep.globals

时间:2015-10-21 16:09:36

标签: titan gremlin tinkerpop3

我正在运行几个titandb / gremlin-server.sh实例,但它在高负载下仍然会耗尽内存。如何以及在何处设置文档中提到的属性?

我想将#jsr223.groovy.engine.keep.globals设置为幻像。

由于

  

缓存管理

     

如果Gremlin Server处理大量独特的脚本,那么   缓存将超出Gremlin Server可用的内存和   OutOfMemoryError将会出现。脚本参数化有很长的路要走   解决这个问题和内存不足应该不成问题   对于那些情况。如果是问题或者没有脚本   由于给定的用例而导致的参数化(可能使用了   会话),可以更好地控制脚本的性质   从客户端缓存,通过发出带参数的脚本   帮助定义垃圾收集器应如何处理引用。

     

该参数名为#jsr223.groovy.engine.keep.globals并且具有   四个选项:

     

hard - 在JVM的生命周期中可用于缓存(默认情况下为   未指定)。

     

软 - 保留到记忆为"低"并且应该在之前收回   抛出OutOfMemoryError。

     即使记忆力很丰富,也会收集到很少的垃圾。

     幻影 - 被评估后立即删除   的ScriptEngine。

     

通过指定hard以外的选项,输入OutOfMemoryError   应该避免使用Gremlin Server。当然,这种方法将会到来   有一个缺点,编译脚本可能是垃圾收集和   从缓存中删除,迫使Gremlin Server重新编译   后面。

1 个答案:

答案 0 :(得分:0)

这是每个请求功能:

  

通过发布带有参数的脚本来帮助定义垃圾收集器如何处理引用,可以更好地从客户端控制脚本缓存的性质。

您必须使用名为#jsr223.groovy.engine.keep.globals的参数构建请求,并且在您的情况下其值应为phantom

对于REST,我认为你会这样做:

curl -X POST -d "{\"gremlin\":\"100-x\", \"bindings\":{\"x\":1, \"#jsr223.groovy.engine.keep.globals\":\"phantom\"}}" "http://localhost:8182"