【问题标题】:Solr - memory requirement for indexingSolr - 索引的内存要求
【发布时间】:2019-12-11 08:08:05
【问题描述】:

更新:添加了一些 java 代码以及用于启动作业的命令

我正在将内存分配给作业的 HPC 服务器上作为作业运行索引进程。我在索引过程中遇到了内存上限,我想询问我的数据使用场景,1)索引和 2)稍后查询索引的最小内存是多少。

场景:

  • 预计索引大小约为 70GB
  • 预计创纪录的人数将达到 1.5 亿左右
  • 我使用 Java solr 客户端,solr = 7.1.0
  • 在索引期间,我每 10k 条记录提交一次
  • 我在索引期间使用 24GB 分配的内存运行该作业,但它在大约一半时崩溃了,即索引了 7500 万条记录
  • 查询用法:很轻,索引仅供我自己(一个人)使用,方便访问数据,查询只会是顺序的,而且大多是基于一个字段的

下面的 Java 代码用于以“嵌入式”模式启动服务器:

    CoreContainer prodNCContainer = new CoreContainer(args[1]);
    prodNCContainer.load();
    SolrClient prodNameCatDescIndex = new EmbeddedSolrServer(prodNCContainer.getCore("prodcatdesc"));

我用来启动作业的命令如下:

#$ -l h_rt=168:00:00 -l rmem=24G -m bea -M ... 
java -Xmx23000m -cp '........ 1.0-SNAPSHOT-jar-with-dependencies.jar' x.y.z.ProdCatDescIndexCreator ....

第一行要求服务器为我的工作分配 24G 内存。

正如我提到的,作业失败是因为服务器在作业超过分配的 24GB 内存时终止了作业。这告诉我,对于这个索引过程来说,这还不够。那么在索引过程中配置内存的经验法则是什么?那么以后使用索引呢?

我记得您不需要比预期索引大小更大的内存......这在 IMO 中也是不现实的。过去,我设法在我的笔记本电脑上加载和查询一个 43G 的 solr 索引,它的内存最大只有 16GB。我很困惑。

solrconfig.xml 文件中是否有任何配置来处理这个问题,例如,可能配置段数?我不知道该怎么做...

【问题讨论】:

  • 如果服务器正在终止作业,则您的内存设置可能太高 - 因为它是操作系统杀死它,而不是 JVM 创建内存不足异常。实际上,您是在告诉 JVM 使用比操作系统允许的更多的内存;我会尝试减少 JVM 可用的内存并让它运行它的 GC。
  • 谢谢。我想我明白你在说什么......我已经更新了我的问题,添加了我用来开始工作的命令。您的意思是,例如,将“java -Xmx ...”编辑为较小的值,例如“java -Xmx12000m ...”,这样它就不会占用分配给我的节点的所有 24G?谢谢
  • 正确。如果你给 JVM 24G,而你的服务器上分配的总内存是 24G,那么 JVM 会吃掉所有东西,当没有更多可用空间时被杀死。在你的笔记本电脑上,这个设置是不同的,它不会因为占用太多内存而被杀死。
  • 感谢它有效,如果您喜欢将此作为答案发布,我会勾选并投票

标签: java solr


【解决方案1】:

如果服务器正在终止作业,则您的内存设置可能太高 - 因为是操作系统终止了它,而不是 JVM 创建了内存不足异常。实际上,您是在告诉 JVM 使用比操作系统允许的更多的内存;减少 JVM 可用的内存,让它运行它的 GC。

如果你给 JVM 24G,而你的服务器上分配的总内存是 24G,那么 JVM 会吃掉所有东西并在没有更多可用空间时被杀死。在你的笔记本电脑上,这个设置是不同的,它不会因为使用太多内存而被杀死。

JVM 认为它可以访问至少与您所说的一样多的内存,然后下面的操作系统会看到“哦,那个 jvm 进程肯定会使用大量内存......我已经用完了可用内存..我猜我得杀了它”。发生这种情况时,该进程就会消失,并且无法记录任何内容(除了 syslog 或取决于您的操作系统,不同的日志会告诉您它被杀死的原因)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2023-03-26
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多