系統:阿里雲 Ubuntu 16.04.6 LTS
內核:Linux star 4.4.0-170-generic #199-Ubuntu SMP Thu Nov 14 01:45:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Neo4j版本:3.3.0
問題:Neo4j運行一段時間后內存占用過多,造成機器內存溢出
解決:
修改配置文件/etc/neo4j/neo4j.conf
修改配置項
1 dbms.memory.heap.initial_size=2048m 2 dbms.memory.heap.max_size=2048m 3 dbms.memory.pagecache.size=3g
其中2048m代表2個G,3g代表3個G,具體設置多少根據自己的情況配置,其中的數值必須時整數,不能有小數點
配置說明
解釋:
Page cache
頁面緩存用於緩存Neo4j的數據和索引,提升性能,減少硬盤讀取
dbms.memory.pagecache.size 用於設置頁面緩存最大值
Heap size
堆空間用於查詢的執行、事務狀態、圖形管理等。堆的大小取決於Neo4j的用法.例如,長時間運行的查詢或非常復雜的查詢比簡單查詢需要更大的堆空間。
一般情況下,為了提高性能,我們會配置足夠大的堆空間來支持並發操作。
如果出現性能問題,我們可能要調整我們的查詢語句並且監視它們的內存使用情況,從而決定是否需要增加堆空間。
堆內存大小由dbms.memory.heap.initial_size和dbms.memory.heap.max_size決定。建議將這兩個參數設置為相同的值。這將有助於避免不必要的完整垃圾回收暫停。