我们在Windows 2008 R2上运行的Solr 3.4实例与Oracle Java 6 Hotspot JDK无法响应。当我们看着机器时,我们注意到可用的物理内存变为零。Solr使用太多内存
Tomcat7.exe进程正在使用~70Gigs(专用工作集),但工作集(内存)正在使用系统上的所有内存。 Tomcat/Solr日志中没有错误。我们使用VMMap来识别内存是否用于内存映射Solr segement文件。
重新启动Tomcat暂时解决了问题,但最终还是回来了。
然后,我们尝试减少JVM的大小,为内存映射文件提供更多空间,但随后Solr最终变得对100%的旧版本无响应。再次重置可以解决问题,但在重置之前它不会抛出内存不足的异常。
当前我们的spidey感告诉我们,当存在内存压力时缓存不会缩小,并且可能有太多的MappedByteBuffers挂起,以致操作系统无法从内存映射文件中释放内存。
? – 2012-03-27 18:16:15
好奇你正在使用哪个JVM版本。 6u17及更早版本有几个令人讨厌的JIT和GC问题。 – 2013-03-25 12:18:16
你要索引什么样的数据? – sidgate 2014-04-05 09:42:39