Diagnosing Intermittent Read Latency Spikes from Page Cache Pressure in Neo4j
A diagnostic guide for self-managed Neo4j causal clusters experiencing intermittent read latency spikes caused by page cache pressure and OS page faults.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
A diagnostic guide for self-managed Neo4j causal clusters experiencing intermittent read latency spikes caused by page cache pressure and OS page faults.
When a file is truncated to a smaller size, the Linux kernel may leave existing page‑cache pages that cover the truncated region intact until they are reclaimed or explicitly invalidated. This can cause subsequent reads—either via regular read() or through a shared memory mapping—to return data that was written before the truncate, i.e., stale content. The i
Runtime page cache in batch scripts In a long-running ProcessWire CLI script (an import that iterates thousands of pages via $pages->get() and $pages->find()), memory grows steadily because every loaded Page object is retained in the runtime page cache for the lifetime of the request. The documented mitigation is $pages->uncache($page) or periodic $
The goal is to understand why Neo4j exhibits a steady increase in on‑heap memory while the off‑heap page cache size stays constant during sustained write‑heavy transactions. The environment uses the default dbms.memory.pagecache.size setting (≈50 % of RAM) and exposes JMX metrics such as neo4j.memory.heap.used and neo4j.pagecache.memory.used for observation.
I'm running a Sulu CMS site (Sulu 2.x on Symfony) that serves mostly public pages, and I need to decide how to handle latency that only shows up when many requests arrive at once. Under light traffic everything is fast, but I'm weighing two documented approaches before load testing. Option one is Sulu's built-in static page cache, which stores rendered HTML
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
Configuring targeted invalidation for TYPO3 page cache entries when a custom extension modifies external data presents a boundary problem. The goal is to clear only the affected rendered pages rather than flushing the entire page cache during high-traffic periods. In TYPO3 v12 and v13, the Cache Framework supports tag-based invalidation, and PageTSConfig off