Elasticsearch 5.0-配置检查

本文详细介绍了Elasticsearch 5.0新增的BootstrapChecks机制,包括为何引入这一机制、开发模式与生产模式的区别以及重要的系统配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch 5.0-配置检查

标签 : Elasticsearch



本文是 Elasticsearch 5.0 系列博文的配置检查篇,主要介绍 Elasticsearch 的 Bootstrap Checks

写在前面

  • 本文以 Elasticsearch 5.0.1 版本为例进行讲解,不定期更新
  • 该系列主要参考的 Elasticsearch Reference: 5.0,尽量避免照搬翻译,只摘录精要部分辅以简单说明
  • 写这个系列博客的初衷是强迫自己梳理,同时方便一些较忙/没空耐心看英文文档的朋友快速上手,建议读者有空多读官方文档,毕竟别人写的都是二手资料
  • 如需查看 ES 系列更多博文,请关注我的个人网站@brianway 或者 @优快云

为什么有 Bootstrap Checks

Bootstrap Checks 是 Elasticsearch 5.0 新加入的,在之前的 2.x 版本是没有的。之前的版本中,错误的配置会被当成 warning 记录到日志中,但这些信息往往被用户忽视。为了保证一些重要的配置得到应有的重视,Elasticsearch 会在启动时进行 Bootstrap Checks .

Bootstrap Checks 会检查很多 Elasticsearch 和系统的配置。在开发模式下,所有没通过的检查都会报 warnings 并写进日志文件,即使检查没通过,依然可以启动节点运行 Elasticsearch;而在生产模式下,任何没通过的 Bootstrap Checks 都会报异常并阻止 Elasticsearch 启动。

开发模式 vs. 生产模式

Elasticsearch 的 HTTP 默认绑定到localhost,并且 transport 使用内部通信,适用于日常开发;而组成集群时,由于每个 ES 实例要可达,故 transport 必须绑定到外部接口。

一般 Elasticsearch 默认你是在开发模式下工作;一旦配置了诸如network.host的网络配置项,Elasticsearch会认为你处于生产环境。这是避免服务器因不良配置造成数据丢失的重要安全措施。

另外,HTTP 和 transport 可以分别通过 http.hosttransport.host进行配置,所以配置单点实例可达时,可以用 HTTP 进行测试而无需触发生产模式。

Bootstrap Checks

有很多检查项,以 Heap size check为例子,由于 Elasticsearch 是使用 Java 写的,程序在 JVM 上运行,而 JVM 的堆大小是可以配置的。如果 JVM 的起始堆大小不等于最大堆大小,那么在堆 resize 的时候很容易造成系统停滞,为了避免这种resize pauses,一开始就应将两者设置成相等。

类似的检查还有很多,大部分是针对 JVM 配置项的检查,有些检查项只在 Linux 系统上会检查,有些在所有平台都会检查。这里只列举出检查项,不作进一步说明了,具体每一项说明可参考 Bootstrap Checks

  • Heap size check
  • File descriptor check
  • Memory lock check
  • Maximum number of threads check
  • Maximum size virtual memory check
  • Maximum map count check
  • Client JVM check
  • Use serial collector check
  • OnError and OnOutOfMemoryError checks

重要的系统配置

从上节可知,很多Bootstrap Checks涉及到系统配置,我们需要对系统进行一些配置来使 Elasticsearch 可以获取更多的资源。

一般必须配置以下几条设置:

  • Set JVM heap size
  • Disable swapping
  • Increase file descriptors
  • Ensure sufficient virtual memory
  • Ensure sufficient threads

在哪里配置系统设置取决于你使用的安装包以及你使用的操作系统,具体的配置方法见 Configuring system settings

JVM 参数建议通过 jvm.options 配置文件进行配置,当然,也可以通过 ES_JAVA_OPTS 环境变量来配置。


作者@brianway更多文章:个人网站 | 优快云 | oschina

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值