使用Elasticsearch优化服务器操作:解决磁盘低水位问题

-根据@opster elasticsearch ninja的评论,我编辑了原始问题,以使其专注于ES的低磁盘水印错误。


:我注意到elasticsearch经常失败,需要手动重新启动服务器。

该问题可能与以下内容有关:即使索引中没有太多数据,也超出了磁盘高水位标记

我想更好地了解如果磁盘大小失败,elasticsearch会执行的操作,如何优化配置,然后才最终在系统出现故障时自动重新启动。

您能否帮助您了解如何阅读Elasticsearch期刊并做出相应的选择来解决问题,并建议最佳实践来调整小型服务器上的服务器操作?

我的首要任务是避免系统崩溃;可以降低性能,没有预算增加服务器大小。

我在单个小型服务器(2GB)上运行elasticsearch,具有3个索引(存储大小分别为500mb,20mb和65mb)和几个GB的可用磁盘空间(状态为固态):我想允许使用虚拟内存VS消耗RAM的内存。

下面是我所做的:


journalctl | grep elasticsearch>探索与ES相关的故障。

    May 13 05:44:15 ubuntu systemd[1]: elasticsearch.service: Main process exited, code=killed, status=9/KILL

May 13 05:44:15 ubuntu systemd[1]: elasticsearch.service: Unit entered failed state.

May 13 05:44:15 ubuntu systemd[1]: elasticsearch.service: Failed with result 'signal'.

在这里我可以看到ES被杀。

编辑 :我发现由于Java内存不足错误,请参见以下错误service elasticsearch status;读者可能还会发现运行以下内容有用:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

检查当前的内存分配。

检查:

/var/log/elasticsearch

[2020-05-09T14:17:48,766][WARN ][o.e.c.r.a.DiskThresholdMonitor] [my_clustername-master] high disk watermark [90%] exceeded on [Ynm6YG-MQyevaDqT2n9OeA][awesome3-master][/var/lib/elasticsearch/nodes/0] free: 1.7gb[7.6%], shards will be relocated away from this node

[2020-05-09T14:17:48,766][INFO ][o.e.c.r.a.DiskThresholdMonitor] [my_clustername-master] rerouting shards: [high disk watermark exceeded on one or more nodes]

如果我只有一台服务器和一个实例,那么“分片将被移离此节点”会怎样?

service elasticsearch status

Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)

Active: active (running) since Sat 2020-05-09 13:47:02 UTC; 32min ago

Docs: http://www.elastic.co

Process: 22691 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCES

Main PID: 22694 (java)

CGroup: /system.slice/elasticsearch.service

└─22694 /usr/bin/java -Xms512m -Xmx512m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+U

我使用的是`/etc/elasticsearch/elasticsearch.yml´的默认配置

我应该包括他们吗?他们会怎么做?

请注意,我没有评论,#bootstrap.memory_lock: true 因为我只有2GB的RAM。

即使在交换内存时Elasticsearch的性能不佳,我的首要任务是它也不会失败,并且站点可以正常运行。

我知道不能在同一节点上分配副本。结果,在单个节点上具有副本是否有意义?如果主索引将失败,副本将挽救出来,或者它们仍将不被使用?

我想知道是否应该删除它们并留出空间,或者最好不要这样做。

回答:

请阅读关于什么是低磁盘水印以及如何临时永久性修复的Opster指南的详细说明。

如果我只有一台服务器和一个实例在工作,碎片将被移离该节点。

Elasticsearch在根据此错误的不同阈值决定是否分配新分片,重新放置分片或将所有索引置于读取模式之前,先考虑可用磁盘空间,原因是Elasticsearch索引由不同的分片组成,这些分片会持久存储在数据节点和低磁盘上空间会导致上述问题。

,即使您释放空间,它也不会进入写入模式,除非您明确命中opster的API中提到的API。指南。

编辑:

。因此,在单个节点Elasticasearch群集上具有副本没有意义,并且这样做将不必要地将您的索引和群集运行状况标记为黄色(缺少副本)。

以上是 使用Elasticsearch优化服务器操作:解决磁盘低水位问题 的全部内容, 来源链接: utcz.com/qa/432335.html

回到顶部