ElasticSearch集群部署系统参数配置调优

Posted smileNicky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch集群部署系统参数配置调优相关的知识,希望对你有一定的参考价值。

内存基本要求

参考书籍:[Elasticsearch: 权威指南]节选https://www.elastic.co/guide/cn/elasticsearch/guide/current/hardware.html

进程数和文件句柄数配置

使用命令查看:

vi /etc/security/limits.conf


如果没配置,在文件的后面加上配置

* soft nproc 131072
* hard nproc 131072
* soft nofile 131072
* hard nofile 131072

第一列表示用户,*表示所有的用户

  • soft xxx:表示警告的设定,可以超过这个设定的值,但是超过后会有警告
  • hard xxx:表示严格的设定,不允许超过设定的值
  • nproc:每个用户创建进程数的限制
  • nofile:每个进程可以打开的文件数限制
  • soft nproc:单个用户最大进程数量,超过会警告
  • hard nproc:单个用户最大进程数量,超过会报错
  • soft nofile:可以打开的文件最大数,超过会警告
  • hard nofile:可以打开的文件最大数,超过会报错

举例:soft 设为1024,hard设为2048,当你使用数在1到1024之间时可以随便使用,1024到2048时会出现警告信息,大于2048时会直接报错

注意:

  • 一般soft的值会比hard小,也可以设置为相等
  • /etc/security/limits.d/ 里面配置会覆盖/etc/security/limits.conf 的配置
    只有root用户才有权限修改/etc/security/limits.conf
    limits.conf没有做设定,则默认值是1024

虚拟内存设置

操作系统的默认mmap count限制是很低的,可能会导致内存不足的异常。所以需要根据需要修改参数

临时配置:

sysctl -w vm.max_map_count=262144

永久配置,找到配置文件

vi /etc/sysctl.conf

进行配置,在文件后面加上


# 设置虚拟内存大小
vm.max_map_count=262144

验证修改的配置:

sysctl -a|grep vm.max_map_count

如果未生效,重新加载配置文件:

sysctl -p

swap分区设置

swap分区是内存不够用的时候,将部分内存上的数据交换到swap空间,以便让系统不会因为内存不够用而导致oom问题

如果要临时禁用swap

swapoff -a

要永久性禁用swap,需要修改/etc/fstab文件,然后将所有包含swap的行注释

另外一种方法就是通过 /etc/sysctl.conf,将vm.swappiness设置为1,这可以尽量减少Linux内核swap的倾向,在正常的情况下,不会进行swap,但是在紧急情况下,还是会进行swap操作。

# 禁用内存和磁盘交换
vm.swappiness=1

注意:如果设置vm.swappiness为0,表示完全不会swap,在内存不够用时,也不会进行交换

这个配置可以根据需要进行配置,在使用ES时候,可以设置为1,提高性能

如果频繁的将ES进程的内存swap到磁盘,肯定会影响性能,内存的操作都是要求快速完成的,如果内存被swap到了磁盘,会影响系统性能

以上是关于ElasticSearch集群部署系统参数配置调优的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch集群部署系统参数配置调优

ElasticSearch集群部署系统参数配置调优

elasticsearch参数调优

ElasticSearch中的JVM性能调优

ElasticSearch5.6.5集群部署及调优Head和Bigdesk插件安装

ElasticSearch部署架构和容量规划