我有300000个文件存储在solr索引中.并使用4GB RAM作为solr服务器.但它消耗了超过90%的物理内存.所以我把我的数据移到了一台有16 GB RAM的新服务器上.solr再次消耗超过90%的内存.我不知道如何解决这个问题.我使用默认的MMapDirectory和solr版本4.2.0.如果您有任何解决方案或原因,请解释我.
小智 10
MMapDirectory尝试尽可能多地使用OS内存(OS Cache),这是正常行为,它会尝试将整个索引加载到内存中(如果可用).事实上,这是一件好事.由于这些内存可用,它会尝试使用它.如果同一台机器中的另一个应用程序需要更多,OS将为其发布它.这就是Solr/Lucene查询速度快几个数量级的原因之一,因为对服务器的大多数调用都会结束内存(取决于内存大小)而不是磁盘.
JVM内存是一个不同的东西,它可以被控制,只有工作查询响应对象和某些缓存条目使用JVM内存.因此可以根据数字请求和缓存条目配置JVM大小.