Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lucene 基于索引的MaxOpenFiles X碎片X副本X文档 问题_Lucene_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Lucene,elasticsearch" /> elasticsearch,Lucene,elasticsearch" />

Lucene 基于索引的MaxOpenFiles X碎片X副本X文档 问题

Lucene 基于索引的MaxOpenFiles X碎片X副本X文档 问题,lucene,elasticsearch,Lucene,elasticsearch,目前我有一个elasticsearch集群,它的文件描述符已经用完了,查看elasticsearch设置文档页面,我发现建议将机器上的文件描述符数量设置为32K甚至64K,并在搜索结果上挖掘一些人将此限制设置为更高的阈值(128K或无限) 我遇到的一个例外是,文件描述符的使用非常普遍: Caused by: org.apache.lucene.store.LockReleaseFailedException: Cannot forcefully unlock a NativeFSLock whi

目前我有一个elasticsearch集群,它的文件描述符已经用完了,查看elasticsearch设置文档页面,我发现建议将机器上的文件描述符数量设置为32K甚至64K,并在搜索结果上挖掘一些人将此限制设置为更高的阈值(128K或无限)

我遇到的一个例外是,文件描述符的使用非常普遍:

Caused by: org.apache.lucene.store.LockReleaseFailedException: Cannot forcefully unlock a NativeFSLock which is held by another indexer component
问题: 根据索引、碎片、副本和/或文档的数量,elasticsearch/lucene是否需要一个文件描述符数量的等式?甚至是所有elasticsearch索引的文件数


我不想通过尝试和错误来设置它,并且无限数量的文件描述符对于我的情况是不可能的。

我对elasticsearch知之甚少,但将尝试从Lucene的角度来回答这个问题

恐怕没有简单的方法来找出你真正需要多少描述符

首先,这取决于实现(如果使用
FSDirectory.open(File)
,实现本身取决于底层操作系统)

其次,它还取决于您的合并策略(可能取决于Lucene版本,除非elasticsearch覆盖它)

最后,它甚至可以依赖于各种特殊情况,例如垃圾收集行为(如果某些位依赖于终结器释放资源)。我们甚至有一个Lucene实例,它一直在泄漏文件描述符,直到我们手动打开
-d64
模式

如上所述,我建议您设置一个监控脚本,在一周左右的时间内收集一些统计数据,并找出适合您典型使用情况的范围。为意外情况添加一些差异


顺便说一句,我现在很难想象有一种情况,文件描述符会成为一个真正的问题。这是个问题吗?你能详细解释一下吗?

+1很好的解释。elasticsearch的复杂性在于,您有多个索引,每个索引可能有多个碎片,其中每个碎片都是lucene实例。此外,套接字也被列为打开文件描述符。请注意,虽然主要在片段合并过程中需要大量的碎片,因此您会在那里看到尖峰,但elasticsearch并不总是使用那么多的文件描述符。您可以轻松地通过监视打开的文件描述符。