我们在tomcat上使用Solr5,在使用SolrJ更新solr索引时遇到了一个问题。
问题是tomcat进程的内存(“工作集”)不断增加,直到它超过分配的最大JVM内存"-Xmx",而不是“内存私有工作集”不超过分配的"-Xmx“,即使在索引更新并复制到从节点并且Solr tomcat进程空闲之后,它也会继续分配内存,垃圾收集器不会清除这些分配的内存。
我们在Jetty容器上运行Master Solr节点,而不是在Tomcat容器上,并将分配的"-Xmx“从35‘t减少到20’t,但这并没有解决问题。
请帮帮忙。
发布于 2017-07-20 06:43:37
堆内存达到所提供的最大值是很正常的,这不是问题。只是,当它必须回收内存时,您可能会遇到比分配的内存大小更小的暂停时间(转换为查询响应时间的减慢)。
你真的需要35 Do吗?使用这种估算机制来调整数据的大小。也有方便的excel表格供您估计所需的内存大小。
https://lucidworks.com/2011/09/14/estimating-memory-and-storage-for-lucenesolr/
https://stackoverflow.com/questions/44956654
复制相似问题