Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Performance 使用elasticsearch优化服务器操作:寻址低磁盘水印_Performance_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Server_Configuration_Fail2ban - Fatal编程技术网 elasticsearch,server,configuration,fail2ban,Performance,elasticsearch,Server,Configuration,Fail2ban" /> elasticsearch,server,configuration,fail2ban,Performance,elasticsearch,Server,Configuration,Fail2ban" />

Performance 使用elasticsearch优化服务器操作:寻址低磁盘水印

Performance 使用elasticsearch优化服务器操作:寻址低磁盘水印,performance,elasticsearch,server,configuration,fail2ban,Performance,elasticsearch,Server,Configuration,Fail2ban,编辑-根据@opster elasticsearch ninja的评论,我对原始问题进行了编辑,以使其关注ES的低磁盘水印错误 有关小型计算机上更一般的服务器优化,请参阅: 对于原始问题的原始跟进以及与调试ES故障相关的注意事项,还应: 问题:我注意到elasticsearch经常失败,需要手动重新启动服务器 这个问题可能涉及: 我想更好地了解如果磁盘大小出现故障,elasticsearch将做些什么,如何优化配置,以及只有在系统出现故障后才能最终自动重启 您能否帮助理解如何阅读elast

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

有关小型计算机上更一般的服务器优化,请参阅:

对于原始问题的原始跟进以及与调试ES故障相关的注意事项,还应:


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

这个问题可能涉及:

我想更好地了解如果磁盘大小出现故障,elasticsearch将做些什么,如何优化配置,以及只有在系统出现故障后才能最终自动重启

您能否帮助理解如何阅读elasticsearch日志并选择相应的解决问题,建议在小型服务器机器上优化服务器操作的最佳实践

我的首要任务是不让系统崩溃;性能稍微降低一点是可以的,没有增加服务器大小的预算

硬件

我在一台小型服务器(2GB)上运行elasticsearch,有3个索引(500mb、20mb和65mb存储大小)和几GB磁盘可用空间(固态):我希望允许使用虚拟内存而不是消耗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'.
在这里我可以看到埃斯被杀了

已编辑:我发现由于java内存不足错误,请参见以下
服务弹性搜索状态中的错误
;读者也会发现运行以下命令很有用:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
检查当前内存分配

ES日志上写了什么?

检查:

/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\u lock:true
因为我只有2gb的内存

即使elasticsearch在内存交换时表现不佳,我的首要任务是它不会失败,并且站点保持正常运行

在单节点计算机上运行-如何处理未分配的副本?

我知道不能在相同的节点上分配副本。 因此,在单个节点上拥有副本有意义吗? 如果一个主索引失败,复制副本将被拯救,还是将被闲置


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

对您的问题的解释:

“如果我只有一台服务器和一个实例工作,碎片将从该节点移开?”

Elasticsearch在决定之前会考虑可用磁盘空间 是分配新碎片、重新定位碎片还是将所有碎片放在一边 基于此错误的不同阈值的读取模式索引, 原因是弹性搜索索引由不同的碎片组成 数据节点上的持久化和磁盘空间不足可能导致上述问题 问题

在您的情况下,由于您只有一个数据节点,因此同一数据节点上的所有索引都将进入读取模式,即使您释放了 空格直到您显式地点击 opster指南中提到的API


编辑:在单个节点上,最好禁用副本,因为Elasticsearch不会将碎片的副本分配给同一数据节点。。因此,在单个节点Elasticsearch群集上拥有副本是没有意义的,这样做将不必要地将索引和群集运行状况标记为黄色(缺少副本).

您共享的日志与
elasticsearch
服务无关,它是一个
sshd
服务日志。高磁盘水印是一个
elasticsearch
配置,默认值为
90%
,这意味着如果elasticsearch保存数据的磁盘使用率超过
90%
it将停止索引任何内容,您的日志显示您只有
7.6%
free(超过90%在使用中),哪里有几GB的可用空间?它在另一个磁盘中?如果是这样,您可以将数据目录移动到此磁盘。感谢您澄清我认为日志与ES相关的错误。我发现有大量来自消耗磁盘空间的应用程序的日志。从您的评论和下面的回答中,我了解到除了使用整理磁盘空间,以解决低磁盘水印问题。这样说是否正确?出于崩溃的严重风险,您建议自动重新启动ES的最佳做法是什么?关于身份验证错误,您建议如何使用日志进行检查-由于连续登录尝试,是否仍存在安全风险或性能风险?tha感谢您澄清单个节点会发生什么,并感谢您在ES上提供有用的服务建议config@user305883,谢谢你的好意:),如果你能投票并接受答案那就太好了:)不幸的是,问题仍然存在-我释放了磁盘空间,今天发现ES失败。并且无法自动自动重启。我注意到日志中有一个
ShardNotFoundException
,即使重启了服务,
curl'localhost:9200/\u cat/shards?v'
显示未分配的索引。我不知道这是否是ES崩溃的问题。请告诉我是否应该修改这个问题,使其更一般,例如现在它与低磁盘水印无关,但我看到它更多地与如何调试ES有关,可能还与调优小型服务器有关