Elasticsearch8 集群搭建(二)配置篇:(2)系统配置

这篇具有很好参考价值的文章主要介绍了Elasticsearch8 集群搭建(二)配置篇:(2)系统配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此篇记录Elasticsearch8的一些系统配置。

1、更改文件描述符的限制

Elasticsearch使用了大量的文件描述符,它用于表示系统打开的文件的标识符。文件描述符是非负整数,它在操作系统层面被用来唯一标识一个打开的文件、套接字或其他 I/O 资源。每个进程都有一组文件描述符,这些描述符用于跟踪它当前打开的文件和网络连接。

操作系统为每个进程分配一定数量的文件描述符。这个数量是由操作系统的配置和限制决定的。对于 Elasticsearch 来说,文件描述符的限制非常重要,因为 Elasticsearch 需要同时打开许多文件,包括索引文件、写入日志文件、配置文件等。如果文件描述符的限制太低,可能会导致 Elasticsearch 在高负载情况下无法正常工作。

ulimit 命令是用于查看和设置 shell 进程资源限制的命令。

使用以下命令查看当前用户的文件描述符限制:

ulimit -n

临时更改文件描述符的限制:

ulimit -n <new_limit>

永久更改文件描述符的限制,编辑/etc/security/limits.conf文件,加入:

<elasticsearch username>    nofile  65535(或更大的值)

Important system configuration | Elasticsearch Guide [8.10] | Elastic

File Descriptors | Elasticsearch Guide [8.10] | Elastic

2、禁用交换设置

在 Elasticsearch 中禁用交换(swapping)的主要原因是性能优化和稳定性考虑。交换是一种操作系统级别的机制,用于在物理内存不足时将部分数据移到磁盘上。尽管这在某些情况下可以帮助系统继续运行,但对于 Elasticsearch 这样的分布式搜索引擎,禁用交换通常是更好的选择。

禁用交换有三种方式:

(1)禁用所有交换文件

临时:

sudo swapoff -a

永久:编辑/etc/fstab文件,将所有包含swap一词的行都注释掉。

(2)配置swappiness

将vm.swappiness值设为1

(3)启用bootstrap.memory_lock

在elasticsearch.yml中,将bootstrap.memory_lock设置为true:

bootstrap.memory_lock: true

同时,还要在/etc/security/limits.conf文件中进行如下配置:

# allow user 'elasticsearch' mlockall

elasticsearch soft memlock unlimited

elasticsearch hard memlock unlimited

将上述命令中的elasticsearch改为实际的elasticsearch用户名。

Disable swapping | Elasticsearch Guide [8.10] | Elastic

3、虚拟内存设置

Elasticsearch 默认使用 mmapfs 目录存储其索引。操作系统对mmap默认的数量限制可能太低,这可能会导致内存不足异常。

mmapfs 是一种文件映射的存储引擎,它使用内存映射文件(mmap)的方式来访问磁盘上的数据。这样的设计可以提高对索引数据的读取速度。

操作系统对 mmap 计数进行了限制,用于控制系统中同时使用的内存映射区域的数量。每个内存映射区域都会占用一定的虚拟内存空间。默认情况下,操作系统可能会设置比较保守的 mmap 计数限制,这是为了确保系统在处理大量并发请求时不会耗尽内存。如果 Elasticsearch 的索引数据量较大,而操作系统对 mmap 计数的限制较低,可能会导致 Elasticsearch 在访问索引数据时出现内存不足的异常。这可能表现为 Out of Memory 异常,导致 Elasticsearch 进程被迫终止或不正常工作。

调整操作系统的 mmap 计数限制:

临时方式:

sysctl -w vm.max_map_count=262144

永久方式:编辑/etc/sysctl.conf文件,加入

vm.max_map_count=262144

修改完,重启ES后,使用以下命令查看:
 

sysctl vm.max_map_count

Virtual memory | Elasticsearch Guide [8.10] | Elastic

4、调整线程数量

Elasticsearch 是一个高度并发的分布式搜索引擎,为了有效地处理各种操作,它使用了多个线程池。每个线程池专门用于处理特定类型的操作,例如搜索、索引、刷新等。在处理大量并发请求时可能需要大量的线程资源。如果限制过低,可能会导致性能下降、请求排队或拒绝服务等问题。将Elasticsearch 用户能够创建的线程数量至少设置为4096.

临时:

ulimit -u 4096

永久:编辑/etc/security/limits.conf文件,加入

<elasticsearch username> nproc 4096

Number of threads | Elasticsearch Guide [8.10] | Elastic

5、JVM堆大小设置

默认情况下,Elasticsearch 会根据节点的角色和总内存自动设置 JVM 堆大小。 对于大多数生产环境,建议使用默认大小。

要改变默认的堆大小,编辑/$ES_HOME/config/jvm.options文件,设置Xms和Xmx两个参数,它们分别表示JVM堆的初始大小和最大大小。这两个参数的值应该相等,以避免在运行时调整堆大小。二者的值均不能超过总物理内存的50%。文章来源地址https://www.toymoban.com/news/detail-804155.html

到了这里,关于Elasticsearch8 集群搭建(二)配置篇:(2)系统配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch8节点加入集群失败解决方法

    failed to join {cluster-master2}{DDB9zVg8SQ24a0jD7lno2w}{gLNn_SCQTIely-VWU0yOHA}{poc-cluster-master2}………… 在日志里面可以看到,是因为节点之前使用一个UUID加入了集群,现在使用一个新的UUID加入新的集群,这是不允许的。 在 Elasticsearch 集群中,每个节点都有一个唯一的节点标识符,通常被称

    2024年01月21日
    浏览(52)
  • Elasticsearch8.4.0集群安装(ELK安装part1)

    一,环境准备 由于资源有限,使用VirtulBox虚拟机进行搭建。 搭建集群的环境配置: 本集群使用Red Hat Enterprise Linux release 8.2 (Ootpa)操作系统,1C CPU,4G Memory,大于50G的Disk。 集群安装规划如下: 机器地址     节点名称    节点角色    节点功能 192.168.88.5 node-1    Master,da

    2023年04月24日
    浏览(94)
  • Elasticsearch7搭建集群并配置节点证书

    Elasticsearch7搭建集群并配置节点证书 | 帅大叔的博客 单机版比较简单,试下集群版的,资源有限,本文例子:一台主机以不同端口启动搭建集群。 环境说明: Centos7 Elasticsearch7.9.0 准备搭建3个节点 一、下载ES安装包 去官网下载 下载地址: Download Elasticsearch | Elastic 历史版本:

    2024年02月12日
    浏览(55)
  • mac下ElasticSearch 集群搭建,使用Kibana配置和管理集群

    Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,如果故障两个Master节点,Elasticsearch将无法组成集群.会报错,Kibana也无法启动,因为Kibana无法获取集群中的节点信息。 现在在mac下安装三个ES实例,

    2024年02月10日
    浏览(56)
  • elasticsearch集群搭建、x-pack配置、kibana安装配置

    关于本帖,最近比较忙,写的某些地方进行一笔带过,后续有时间继续补充。此做暂记,以免遗忘。 elasticsearch-7.6.2.tar.gz jdk-11.0.12+7.tar.gz jdk8(已安装) kibana-7.6.2.tar.gz 安装用户(非root,这里使用的qxc用户,并赋予 sudo 权限) 安装机器ip目录 ip 10.186.11.66 10.186.11.67 10.186.11.68 生成

    2024年02月03日
    浏览(44)
  • Elasticsearch8安全配置详解剖析

    自建的Elasticsearch集群,从8.0版本开始,也默认地简化了安全功能,为用户 自动配置: 用户认证、基于角色的访问控制进行用户授权、使用 TLS 加密的节点到节点通信、使用 HTTPS 与 Elasticsearch API 进行加密通信。 为什么我们需要进行如此 复杂 的安全配置,并启用SSL/TLS对Elas

    2024年02月08日
    浏览(44)
  • ElasticSearch7.3.0 集群搭建及配置安全认证

    注: 由于是测试,搭建的环境就在一台机器上(操作系统是 CentOS 7) 配置 Elasticsearch Elasticsearch 的配置文件是 elasticsearch/elasticsearch.yml 集群的名称 配置集群的名称,所有的node节点集群名称要一致 节点的名称 配置每个节点的名称,节点的名称要在集群中唯一 索引文件的存储位置 默认

    2023年04月13日
    浏览(65)
  • 安装elasticsearch8.9.0及修改配置

    安装es流程 打开文件,添加以下行 vim /etc/sysctl.conf vm.max_map_count=262144 重启生效 sysctl -p 创建用户 useradd es passwd es 修改es目录所属用户 chown -R es:es /opt/elasticsearch-8.9.0 如果内存不足,可以修改es的初始化内存和Max内存,修改文件/opt/elasticsearch-8.9.0/config/jvm.options -Xms8g -Xmx8g 运行e

    2024年02月11日
    浏览(43)
  • Linux系统部署elasticsearch8.0

    官网下载软件,上次到Linux系统 解压的时候需要注意解压路径不要在root目录下,因为elasticsearch8不允许使用root角色启动 找到config目录下的elasticsearch.yml文件,修改配置: 可以看到启动报错 这个错误是因为一些系统配置参数对于es太小了 es启动不起来 修改相应配置即可 先解决

    2023年04月08日
    浏览(45)
  • docker-compose 搭建 elasticsearch8.2.0 + kibana 8.2.0

    最近研究es,搭建环境的时候发现网上的很多文档大部分都是用来记录自己操作的,不过中间还是出现了很多问题,单独的文档还不能解决这些问题。我决定记录下来中间发生的问题,还有解决方案。还有在windows上docker-compose搭建的,原理一样不过不好操作中间很多问题可能和

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包