We are using Neo4j 3.4.1 Enterprise edition.
We have recently been facing > 90% CPU usage during high load. This is very problematic as all our queries are taking longer to execute.
Our DB size is ~2T. Our machine is r4.4xlarge. ( 16cores, 122 GB ram. ) We have < 100 active user but we run heavy batch write operations. Our thread pool configuration is - min size - 600 max size - 3000 keepalive - 10min
It is hard for us to conclude what is causing this high CPU usage and how we can fix it.
We have already optimized our queries. And we cant find hardware recommendations for our graph size using the calculator.
These are our questions ->
- Will upgrading the machine help? Does adding more cores and RAM improve Neo4j performance.? (specifically changing to r4.8xlarge machine - 32 cores and 256gb ram)
- Is there a limit to the maximum pool size? What are the cons if I increase the pool size from 3000 to 6000?
- Are there any other recommendations to tackle the high CPU usage?