我正在运行几个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重新编译 后面。
答案 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"