我们在Windows 2008 R2上运行的Solr 3.4实例与Oracle Java 6 Hotspot JDK无响应。当我们查看机器时,我们发现可用的物理内存为零。
Tomcat7.exe进程正在使用~70Gigs(私有工作集),但工作集(内存)正在使用系统上的所有内存。 Tomcat / Solr日志中没有错误。我们使用VMMap来识别内存是否用于映射Solr segement文件的内存。
重启Tomcat会暂时解决问题,但最终还是回来了。
然后我们尝试减少JVM大小以为内存映射文件提供更多空间,但随后Solr最终对100%的旧代没有响应。再次重置修复了问题,但在重置之前它没有抛出内存不足的异常。
目前我们的蜘蛛侠意识告诉我们,当存在内存压力时缓存不会缩小,并且可能有太多MappedByteBuffers闲置,因此操作系统无法从内存映射文件中释放内存。
答案 0 :(得分:1)
参数太多,信息太少,无法提供任何细节。这个答案也很老,就像上面提到的系统一样。
以下是一些有助于我的经历的事情:
答案 1 :(得分:0)
这可能是由于SOLR用于目录的新默认策略(它试图将它们映射到RAM或类似的东西)。