Page Cache Size vs Working Set on Neo4j Low-Traffic Instances
0 reputation · 26 Sept 2021, 17:19 UTC
A Neo4j deployment serving a predominantly read‑only workload with limited concurrent users requires careful page cache sizing to balance memory efficiency against disk I/O. The dbms.pagecache_size setting governs the off‑heap cache that holds frequently accessed graph pages. Version‑specific default sizes and auto‑tuning behavior have changed between major releases, introducing uncertainty for cost‑optimization across deployment tiers. Application‑level read patterns and the proportion of the working set that fits in memory are primary variables influencing hit ratio and query latency.
Key constraints include the version‑sensitive default sizes, the risk that reducing cache memory could increase disk I/O if the working set exceeds the cache boundary, and the fact that settings tuned for development or desktop editions may not map directly to Aura or Enterprise pricing tiers. Additionally, employing read replicas to distribute read traffic introduces replica‑lag considerations that affect consistency requirements for latency‑critical queries.
What is the minimum dbms.pagecache_size that sustains an acceptable hit ratio for a given working set on Neo4j 5.x? Does reducing the cache size below the working set consistently increase random disk I/O, and how does this interact with dbms.tx_log.rotation_size on sparse‑write workloads? Are there version‑specific auto‑tuning mechanisms that override manual cache adjustments during runtime?