Neo4j長時間運行后內存占用過高


系統:阿里雲 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_sizedbms.memory.heap.max_size決定。建議將這兩個參數設置為相同的值。這將有助於避免不必要的完整垃圾回收暫停。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM