lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Markus Jelsma <markus.jel...@openindex.io>
Subject RE: Solr uses lots of shared memory!
Date Thu, 24 Aug 2017 09:32:35 GMT
Hello Erick,

I know the article, it is about virtual memory. My problem is with shared memory. Correct
me if i am wrong, but MMApped files do not occupy shared but virtual instead. If i am wrong,
the article must be rewritten. Our main searchers show very normal numbers for virtual, which
is index size plus RSS.

My problem is that RSS is more than four times our heap size. Usually RSS is heap + PermGen/metaspace
+ code cache + (threads * stack size) + some other stuff, so a 1 GB heap would consume about
1500 MB tops. Our RSS for Solr is 4.3 GB of which 2.85 GB is shared memory.

Let me know what you think.

Thanks,
Markus 
 
-----Original message-----
> From:Erick Erickson <erickerickson@gmail.com>
> Sent: Thursday 24th August 2017 3:35
> To: solr-user <solr-user@lucene.apache.org>
> Subject: Re: Solr uses lots of shared memory!
> 
> I suspect you've already seen this, but top and similar can be
> confusing when trying to interpret MMapDirectory. Uwe has an excellent
> explication:
> 
> http://blog.thetaphi.de/2012/07/use-lucenes-mmapdirectory-on-64bit.html
> 
> Best,
> Erick
> 
> On Wed, Aug 23, 2017 at 9:10 AM, Markus Jelsma
> <markus.jelsma@openindex.io> wrote:
> > I have the problem in production and local, with default Solr 6.6 JVM arguments,
environments are:
> >
> > openjdk version "1.8.0_141"
> > OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-1~deb9u1-b15)
> > OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode)
> > Linux idx1 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u1 (2017-06-18) x86_64 GNU/Linux
> >
> > and
> >
> > openjdk version "1.8.0_131"
> > OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.17.04.3-b11)
> > OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
> > Linux midas 4.10.0-32-generic #36-Ubuntu SMP Tue Aug 8 12:10:06 UTC 2017 x86_64
x86_64 x86_64 GNU/Linux
> >
> > Regarding the node that shows the problem, can you reproduce it locally? Fire it
up, put some data in, confirm low shared space usage, and execute few thousands queries against
it? We immediately see a sharp rise in shared memory, MB's per second until it reaches some
sort of plateau.
> >
> > -----Original message-----
> >> From:Shawn Heisey <apache@elyograg.org>
> >> Sent: Wednesday 23rd August 2017 16:37
> >> To: solr-user@lucene.apache.org
> >> Subject: Re: Solr uses lots of shared memory!
> >>
> >> On 8/23/2017 7:32 AM, Markus Jelsma wrote:
> >> > Why does it slowly increase over time?
> >> > Why does it appear to correlate to index size?
> >> > Is anyone else seeing this on their 6.6 cloud production or local machines?
> >>
> >> More detailed information included here.  My 6.6 dev install is NOT
> >> having the problem, but a much older version IS.
> >>
> >> I grabbed this screenshot only moments ago from a production server
> >> which is exhibiting a large SHR value for the Solr process:
> >>
> >> https://www.dropbox.com/s/q79lo2gft9es06u/idxa1-top-big-shr.png?dl=0
> >>
> >> This is Solr 4.7.2, with a 10 month uptime for the Solr process, running
> >> with these arguments:
> >>
> >> -DSTOP.KEY=REDACTED
> >> -DSTOP.PORT=8078
> >> -Djetty.port=8981
> >> -Dsolr.solr.home=/index/solr4
> >> -Dcom.sun.management.jmxremote.authenticate=false
> >> -Dcom.sun.management.jmxremote.ssl=false
> >> -Dcom.sun.management.jmxremote.port=8686
> >> -Dcom.sun.management.jmxremote
> >> -XX:+PrintReferenceGC
> >> -XX:+PrintAdaptiveSizePolicy
> >> -XX:+PrintGCDetails
> >> -XX:+PrintGCDateStamps
> >> -Xloggc:logs/gc.log-verbose:gc
> >> -XX:+AggressiveOpts
> >> -XX:+UseLargePages
> >> -XX:InitiatingHeapOccupancyPercent=75
> >> -XX:MaxGCPauseMillis=250
> >> -XX:G1HeapRegionSize=8m
> >> -XX:+ParallelRefProcEnabled
> >> -XX:+PerfDisableSharedMem
> >> -XX:+UseG1GC
> >> -Dlog4j.configuration=file:etc/log4j.properties
> >> -Xmx8192M
> >> -Xms4096M
> >>
> >> The OS is CentOS 6, with the following Java and kernel:
> >>
> >> java version "1.7.0_72"
> >> Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
> >> Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
> >>
> >> Linux idxa1 2.6.32-431.11.2.el6.centos.plus.x86_64 #1 SMP Tue Mar 25
> >> 21:36:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> >>
> >> I also just grabbed a screenshot from my dev server, running Ubuntu 14,
> >> Solr 6.6.0, a LOT more index data, and a more recent Java version.  Solr
> >> has an uptime of about one month.  This server was installed with the
> >> service installer script, so it uses bin/solr.  It doesn't seem to have
> >> the same problem:
> >>
> >> https://www.dropbox.com/s/85h1weuopa643za/bigindy5-top-small-shr.png?dl=0
> >>
> >> java version "1.8.0_144"
> >> Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
> >> Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
> >>
> >> Linux bigindy5 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 15:37:11 UTC
> >> 2016 x86_64 x86_64 x86_64 GNU/Linux
> >>
> >> The arguments for this one are very similar to the production server:
> >>
> >> -DSTOP.KEY=solrrocks
> >> -DSTOP.PORT=7982
> >> -Dcom.sun.management.jmxremote
> >> -Dcom.sun.management.jmxremote.authenticate=false
> >> -Dcom.sun.management.jmxremote.local.only=false
> >> -Dcom.sun.management.jmxremote.port=18982
> >> -Dcom.sun.management.jmxremote.rmi.port=18982
> >> -Dcom.sun.management.jmxremote.ssl=false
> >> -Djetty.home=/opt/solr6/server
> >> -Djetty.port=8982
> >> -Dlog4j.configuration=file:/index/solr6/log4j.properties
> >> -Dsolr.install.dir=/opt/solr6
> >> -Dsolr.log.dir=/index/solr6/logs
> >> -Dsolr.log.muteconsole
> >> -Dsolr.solr.home=/index/solr6/data
> >> -Duser.timezone=UTC
> >> -XX:+AggressiveOpts
> >> -XX:+ParallelRefProcEnabled
> >> -XX:+PrintGCApplicationStoppedTime
> >> -XX:+PrintGCDateStamps
> >> -XX:+PrintGCDetails
> >> -XX:+PrintGCTimeStamps
> >> -XX:+PrintHeapAtGC
> >> -XX:+PrintTenuringDistribution
> >> -XX:+UseG1GC
> >> -XX:+UseGCLogFileRotation
> >> -XX:+UseLargePages
> >> -XX:G1HeapRegionSize=8m
> >> -XX:GCLogFileSize=20M
> >> -XX:InitiatingHeapOccupancyPercent=75
> >> -XX:MaxGCPauseMillis=250
> >> -XX:NumberOfGCLogFiles=9
> >> -XX:OnOutOfMemoryError=/opt/solr6/bin/oom_solr.sh 8982 /index/solr6/logs
> >> -Xloggc:/index/solr6/logs/solr_gc.log
> >> -Xms28g
> >> -Xmx28g
> >> -Xss256k
> >> -verbose:gc
> >>
> >> Neither system has any huge pages allocated in the OS, so I doubt that
> >> the UseLargePages option is actually doing anything.  I've left it there
> >> in case I *do* enable huge pages, so they will automatically get used.
> >>
> >> Thanks,
> >> Shawn
> >>
> >>
> 

Mime
View raw message