如何设置#jsr223.groovy.engine.keep.globals



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

我想设置#jsr223.groovy.engine.keep。

感谢
缓存管理

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

参数名为#jsr223.groovy.engine.keep。Globals和has四个选项:

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

软保留,直到内存"低",在此之前应该回收抛出OutOfMemoryError .

weak -即使内存充足也会收集垃圾。

幻像-在被评估后立即移除ScriptEngine .

通过指定hard以外的选项,在应该避免使用Gremlin Server。当然,这种方法将会到来缺点是编译后的脚本可能会被垃圾收集因此从缓存中删除,迫使Gremlin服务器重新编译以后。

这是一个基于请求的特性:

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

您必须使用一个名为#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"

最新更新