【问题标题】:How much memory should be assigned to Java on Tomcat, using Solr with 20+ M items in the index?在 Tomcat 上使用具有 20+ M 个项目的 Solr 应该为 Java 分配多少内存?
【发布时间】:2011-08-19 14:23:32
【问题描述】:

我正在寻找一些关于在运行 Solr 的 Tomcat 7 上为 Java 分配内存的建议 :-)

以下是事实:

  • 运行 Solr 1.4.1,索引中有大约 2000 万个项目 大小不同。
  • 修剪后的索引大约为 40-45 GB
  • 约有 40000-60000 篇文章被添加到索引中。文章大小不一,从几 kB 到 15-20 kB。
  • 约有 5000-8000 张图片添加到索引中。 (其实不是图片本身,而是一些元数据)。

Solr 配置细节:

  • 合并因子 10
  • ramBufferSizeMB 128 MB
  • maxMergeMB 1024.0 MB

进行完整的重新索引时(在 Win 2007 服务器上,配备 Intel Xeon CPU(4 核)+ 6 GB 内存),索引日记条目大约需要 3.5 小时,索引图像大约需要 4.5 小时。

但是,我们已将索引服务器升级到 12 GB 内存,并为 Java 6144 MB 分配了最大内存池初始内存池:1024 MB

重新启动 Apache 时,Tomcat 大约需要 5-10 分钟才能达到约 5 GB 的内存使用量。再过一两个小时,它就会达到 6 GB 的障碍并停留在那里。

当我们使用 32 位 Apache 有一个 2 GB 的屏障时,我们在 1-1.5 周后得到了 OutOfMemoryError: Java Heap Space。 3 GB 加起来可能需要 2-3 周。

现在,我们已经在 64 位 Apache 和 Java 上运行 Solr,并分配了 6 GB 空间。到目前为止没有问题。

鉴于以上事实,您将如何调整 Solr 索引和调整内存使用情况?

【问题讨论】:

标签: java apache tomcat solr tomcat7


【解决方案1】:

你的图片索引有多大?您是否考虑过将两个索引分开?如果您将它们放在单独的盒子上的单独 SOLR 实例上,您应该会看到性能提升。

【讨论】:

  • 现在我们有一个使用多于一个服务器的约束。这在未来可能会改变。图像索引约为 20 GB。还没有分离索引!
  • 您还可以在同一台服务器上跨不同的服务进行分片。将一个放在 8983 端口,下一个放在 8984 端口!
猜你喜欢
  • 2018-04-04
  • 1970-01-01
  • 2011-05-09
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 2011-08-27
  • 2015-04-01
相关资源
最近更新 更多