2016-06-08 54 views
1

我想在單個虛擬機上儘可能多的運行Neo4J(使用企業版)實例。啓動實例的實際最小內存要求是多少?運行Neo4J實例的真正最小RAM是多少

現在TaskManager告訴我Java.exe需要大約70,000K(70 Meg)。這聽起來是對的嗎?

我並不擔心性能,我只是想在一個盒子上填充儘可能多的實例,以便人們可以對圖形進行一些低需求搜索。

回答

0

對於neo4j 3.x,documented最小內存要求是2GB。

+0

閱讀。但是我在桌面上運行它,而Java.exe只有70兆。這是我混亂的根源。 – TRH

2

有一點是推薦的,第二個「它取決於」。

Neo4j能夠在Raspberry Pi上運行。但是你不應該期待出色的表現。此外,我正在使用AWS t2.micro進行測試,這已經足夠了。

2

隨着圖形被加載到內存中執行遍歷以及當它被分頁回磁盤時(內存不足時),大小必然會波動。

如果我可能會提供一個建議,那麼您可以只運行一個數據庫實例,併爲每個用戶提供未連接的圖。就服務器資源而言,這非常有效得多。例如,如果您爲每個用戶構成一個圖(:Item)節點,您可以將它們標記爲(:Item-User1),併爲每個用戶使用唯一的前綴或後綴。

因此,當您想要更改查詢以針對每個用戶運行時,您只需添加該唯一元素並搜索該圖即可。

這個想法是爲每個用戶建立一個單獨的子圖,這個子圖與其他用戶的子圖是沒有關係的。而不是爲每個單獨的用戶分配一個數據庫實例。只要每個用戶的子圖與其他用戶的子圖都沒有連接,就不會有用戶訪問其他用戶數據的安全漏洞。

通過這種方式,您可能擁有無限數量的用戶(在合理範圍內,很可能在數百萬用戶中),每個用戶都有自己的子圖,性能可能沒有損失,而不是少數可以旋轉的數據庫實例在單個虛擬機上運行,​​這可能會導致資源競爭和窒息。