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

Reply via email to