We provide jattach for these purposes in the official docker image: https://solr.apache.org/guide/solr/latest/deployment-guide/solr-in-docker.html#debugging-with-jattach
Jan > 30. apr. 2025 kl. 13:11 skrev Jason Gerlowski <gerlowsk...@gmail.com>: > > Hi Florian, > > I haven't heard any reports of a memory leak triggered by the > REINDEXCOLLECTION codepath, but such a leak is always possible. I'd > love to see what you find if you're able to take a heap dump! > > The typical way (afaik) to create heap dumps "on demand" is with jcmd > or jmap. If that's not available on the Solr pods, it might be > possible to "kubectl cp" one of those executables into your pods, and > then run it to produce a dump. If that doesn't work, then the other > option I'd recommend is making sure that Solr is running with the > "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>" > JVM flags so that a heap dump is produced when OOM is eventually hit. > (You'd want to make sure that the heap-dump path is something > persistent, so that the heap dump won't be wiped out by a > pod-restart.) > > Hopefully that helps a bit. Let us know if you're able to find anything! > > Best, > > Jason > > On Wed, Apr 30, 2025 at 6:55 AM Schieder Florian > <florian.schie...@puzzleyou.de.invalid> wrote: >> >> Hello all, >> >> we are running Solr 9.8.1 on Kubernetes using the official Solr Operator >> 0.9.1. >> >> After many asynchronous REINDEXCOLLECTION requests we are encountering a >> significant RAM allocation increase which is itself neither surprising nor >> problematic, but after those requests have successfully completed, the >> consumption stays constant and does not decrease. Manually restarting the >> SolrCloud deployment always resolves that issue, so for me it seems like >> either the allocated blocks are afterwards not being freed up correctly or, >> they *are* deallocated correctly but after the requests completed, the heap >> itself is fragmented too much. >> >> If the heap allocation increased and increased after several >> REINDEXCOLLECTION requests and we did not restart the pods, this led to OOM >> crashes for us in the past. In this case, the REINDEXCOLLECTION async >> requests were interrupted which required manual intervention. >> >> It's easy for me to reproduce this RAM allocation behavior, but after diving >> into how to create JVM memory dumps with 'jcmd' and 'jmap', it seems to me >> like it's not trivially possible to create such a heap dump with the current >> tools installed into the Solr pods. However, I'm not that expert regarding >> Solr and the Java ecosystem, so if there are any solutions to create memory >> dumps to help the Solr development team tracing the RAM consumption issues >> explained above, any ideas are welcome. >> >> Many thanks! >> Florian Schieder