Hi, I have a solrcloud setup with 12GB heap and I've been trying to optimize it to avoid OOM errors. My index has about 30million docs and about 80GB total, 2 shards, 2 replicas.
In my testing setup I submit multiple queries to solr (same node), sequentially, and with no overlap between the documents returned in each query (so docs do not need to be kept in cache) When the queries return a smallish number of docs (say, below 1000), the heap behavior seems "normal". Monitoring the gc log I see that young generation grows then when GC kicks in, it goes considerably down. And the old generation grows just a bit. However, at some point i have a query that returns over 300K docs (for a total size of approximately 1GB). At this very point the OLD generation size grows (almost by 2GB), and it remains high for all remaining time. Even as new queries are executed, the OLD generation size does not go down, despite multiple GC calls done afterwards. Can anyone shed some light on this behavior? I'm using the following GC options: GC_TUNE=" \ -XX:+UseG1GC \ -XX:+PerfDisableSharedMem \ -XX:+ParallelRefProcEnabled \ -XX:G1HeapRegionSize=4m \ -XX:MaxGCPauseMillis=250 \ -XX:InitiatingHeapOccupancyPercent=75 \ -XX:+UseLargePages \ -XX:+AggressiveOpts \ " Thanks Reinaldo