2015-10-21 33 views
0

我正在運行幾個titandb/gremlin-server.sh實例,但它在高負載下運行內存不足。我如何以及在哪裏設置文檔中提及的屬性?titandb gremlin-server耗盡內存如何設置#jsr223.groovy.engine.keep.globals

我想將#jsr223.groovy.engine.keep.globals設置爲幻影。

感謝

緩存管理

如果小鬼服務器處理大量獨特的腳本,該 緩存將增長超過提供給小鬼服務器的內存和 的OutOfMemoryError將織機。腳本參數化很大程度上可以解決這個問題, 這些情況下內存不足應該不是問題 。如果由於給定用例(可能使用 會話)使參數化不成功,或者由於沒有腳本 參數化,則可以通過發佈腳本更好地控制來自客戶端的腳本 緩存的性質用參數 幫助定義垃圾收集器應如何處理引用。

的參數稱爲#jsr223.groovy.engine.keep.globals並具有 四個選項:

難 - 在緩存中的JVM(如果未指定 默認)的生活可用。

soft - 保留到內存爲「低」,並應在 之前回收OutOfMemoryError。

弱 - 垃圾收集即使內存豐富。

幻影 - 在被 ScriptEngine評估後立即移除。

通過指定硬件以外的選項,應該避免使用 Gremlin Server中的OutOfMemoryError。當然,這種方法會帶來 的缺點,即編譯腳本可能被垃圾收集, 因此從緩存中刪除,迫使Gremlin服務器稍後重新編譯 。

+0

泰坦呼籲./scripts/empty-sample.groovy是這樣,我應該設置呢? – Scott

回答

0

這是每個請求的功能:

,可以更好地控制從客戶端腳本緩存的性質,通過參數發行腳本來幫助定義垃圾收集器應該如何處理參考。

您必須構建一個叫#jsr223.groovy.engine.keep.globals參數您的請求,它應該在你的情況下的phantom值。

休息我想你會做:

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

謝謝斯蒂芬。我只需要解決如何使用gremlin-php和套接字來傳遞它。 – Scott