aha! mmap explains it. thank you.
On Tue, Mar 18, 2014 at 3:11 PM, Shawn Heisey <s...@elyograg.org> wrote: > On 3/18/2014 5:30 AM, Avishai Ish-Shalom wrote: > > My solr instances are configured with 10GB heap (Xmx) but linux shows > > resident size of 16-20GB. even with thread stack and permgen taken into > > account i'm still far off from these numbers. Could it be that jvm IO > > buffers take so much space? does lucene use JNI/JNA memory allocations? > > Solr does not do anything off-heap. There is a project called > heliosearch underway that aims to use off-heap memory extensively with > Solr. > > There IS some mis-reporting of memory usage, though. See a screenshot > that I just captured of top output, sorted by memory usage. The java > process at the top of the list is Solr, running under the included Jetty: > > https://www.dropbox.com/s/03a3pp510mrtixo/solr-ram-usage-wrong.png > > I have a 6GB heap and 52GB of index data on this server. This makes the > 62.2GB virtual memory size completely reasonable. The claimed resident > memory size is 20GB, though. If you add that 20GB to the 49GB that is > allocated to the OS disk cache and the 6GB that it says is free, that's > 75GB. I've only got 64GB of RAM on the box, so something is being > reported wrong. > > If I take my 20GB resident size and subtract the 14GB shared size, that > is closer to reality, and it makes the numbers fit into the actual > amount of RAM that's on the machine. I believe the misreporting is > caused by the specific way that Java uses MMap when opening Lucene > indexes. This information comes from what I remember about a > conversation I witnessed in #lucene or #lucene-dev, not from my own > exploration. I believe they said that the MMap methods which don't > misreport memory usage would not do what Lucene requires. > > Thanks, > Shawn > >