Elasticsearch日志文件的大小性能下降

时间:2015-01-22 06:50:48

标签: java ruby-on-rails elasticsearch searchkick

我正在使用RoR开发一个名为searchkick的应用程序和一个gem,这个gem在内部使用elasticsearch。一切正常,但在制作过程中,我们遇到了一个奇怪的问题,一段时间后网站出现问题。我们发现的原因是服务器上的内存被过度使用。我们删除了前一周的一些elasticsearch日志文件,发现内存使用率从92%减少到47%。我们使用滚动日志记录,每天备份日志。现在,我们面临的问题是,前一天只有1个日志文件,内存越来越高。日志文件占用了大量空间,即使是当前的文件需要4GB!我该如何防止这种情况?

这些消息几乎都是警告级别。

[00:14:11,744][WARN ][cluster.action.shard ] [Abdul Alhazred] [?][0] sending failed shard for [?][0], node[V52W2IH5R3SwhZ0mTFjodg], [P], s[INITIALIZING], indexUUID [4fhSWoV8RbGLj5jo8PVoxQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[?][0] failed recovery]; nested: EngineCreationFailureException[[?][0] failed to create engine]; nested: LockReleaseFailedException[Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /usr/lib64/elasticsearch-1.1.0/data/elasticsearch/nodes/0/indices/?/0/index/write.lock]; ]]

看一些SO questions,我试图增加ulimit或创建一个新节点,这样问题也解决了,大小也减少了。我的limits.conf对于硬和软nofile有65535。同样在sysctl.conf中,fs.file-max超过100000.我是否还有其他步骤可以减少文件大小,而且我无法深入了解elasticsearch配置更改。

如果有人可以提供帮助。感谢

2 个答案:

答案 0 :(得分:1)

我建议升级到至少1.2.4,因为Lucene报告了一些文件锁定问题:http://issues.apache.org/jira/browse/LUCENE-5612http://issues.apache.org/jira/browse/LUCENE-5544

答案 1 :(得分:0)

是ElasticSearch和Lucene都是资源密集型的。我做了以下工作来纠正我的系统:

  1. 停止ElasticSearch。如果你从命令开始 (bin / elasticsearch)然后请具体这个设置堆 开始。例如,我使用16GB的盒子,所以我的命令是
  2. 一个。 bin / elasticsearch -Xmx8g -Xms8g

    湾转到config(elasticsearch / config / elasticsearch.yml)并确保

    bootstrap.mlockall:true

    ℃。将 ulimits -Hn和ulimits -Sn增加到200000以上

    1. 如果您是作为服务开始的,请执行以下操作
    2. 一个。 导出ES_HEAP_SIZE = 10g

      湾转到config(/etc/elasticsearch/elasticsearch.yml)并确保

      bootstrap.mlockall:true

      ℃。将 ulimits -Hn和ulimits -Sn增加到200000以上

      确保您输入的大小不超过堆的50%,无论您是将其作为服务启动还是从命令行启动