On 1/5/2016 11:50 PM, Zheng Lin Edwin Yeo wrote:
> Here is the new screenshot of the Memory tab of the Resource Monitor.
> https://www.dropbox.com/s/w4bnrb66r16lpx1/Resource%20Monitor.png?dl=0
>
> Yes, I found that the value under the "Working Set" column is much higher
> than the others. Also, the value which I was previously looking at under
> the Task Manager is under the Private Column here.
> It says that I have about 14GB of available memory, but the "Free" number
> is much lower, at 79MB.

You'll probably think I'm nuts, but I believe everything is working
exactly as it should.

The first two processes, which I assume are Solr processes, show a
Shareable size near 7GB each.  I have seen something similar happen on
Linux where SHR memory is huge for the Solr process, and when this
happens, the combination of memory numbers would turn out to be
impossible, so I think it's a memory reporting bug related to Java, one
that affects both Linux and Windows.

Subtracting SHR from RES (or in your case, Shareable from Working)
reveals the actual memory being used, and I believe you can see this
actual number in the Private column, which is approximately the
difference between Working and Shareable.  If I'm right, this means that
the actual memory usage is almost 14GB lower than Windows is reporting.

If both of the top processes are Solr, I'm not sure why you have two
Solr processes on one machine.  One Solr instance can handle multiple
indexes with no problem.

As evidence that I'm not insane, consider the following screenshot, from
another of my servers:

https://www.dropbox.com/s/64en3sar4cr1ytj/linux-solr-mem-high-shr.png?dl=0

On the screenshot, the solr process shows RES size of 22GB ... which is
highly unusual, because this Solr install has a max heap of 8GB ... but
notice that SHR is 13GB.  The difference between 22GB and 13GB is 9GB,
which is much more reasonable, and if we assume that the 22GB is rounded
up and/or the 13GB is rounded down, then the difference is much closer
to 8GB.  Looking at some other numbers, the "cached" value is 48GB.  If
you add the 48GB cache allocation to the *reported* resident size of
22GB for Solr, you get a total of 70GB ... which is more memory than the
machine even has (64GB).  This is why I am sure that when SHR is really
high on a Java process, it is a memory reporting error.

Thanks,
Shawn

Reply via email to