《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(1) https://developer.aliyun.com/article/1231513
小结
本节对 ES 节点/集群部署所需环境对选择策略、必备软件等方面进行了阐述。
系统级别参数配置
ES 作为一个复杂的系统,对于服务器资源的要求相较于一般的服务要更严格,这样也能够保证,ES 节点可以更好的发挥其作用。本节将从各种系统级别的参数要求及修改意义方面进行阐述。
系统级别参数配置策略
ES 内部会启动包括而不仅限于 query 线程池、数据写入线程池、数据 refresh线程池、
segment merge 线程池等等。在启动时 ES 会要求系统中单个进程可用线程数超过 65535。
在 Linux 里万物皆文件,线程也可以看作一种特殊的文件。在启动时 ES 会要求系统中可打开的文件句柄数超过 65535。
在运行时,ES 会建议避免在运行过程中因为系统的缓存交换而产生的性能损耗。大部分操作系统有可能会将系统缓存中的数据交换到硬盘中。在 ES 节点部署的时候建议禁止这一交换行为。
在运行时,ES 会占用大量的内存进行一系列的数据处理。建议开启内存锁定的配置,将它所占用的内存进行锁定。
配置流程(太长不看版)
修改系统级别限制
sed -e '/^vm.max_map_count/d' \ -i.bak \ /etc/sysctl.conf; \ sed -e '$a vm.max_map_count=655360' \ -i.bak \ /etc/sysctl.conf; \ sed -e '/^* soft nofile/d' \ -e '/^* hard nofile/d' \ -e '/^elasticsearch soft nofile/d' \ -e '/^elasticsearch hard nofile/d' \ -e '/^* soft memlock/d' \ -e '/^* hard memlock/d' \ -e '/^elasticsearch soft memlock/d' \ -e '/^elasticsearch hard memlock/d' \ -i.bak \ /etc/security/limits.conf; \ sed -e '$a * soft nofile 655350' \ -e '$a * hard nofile 655350' \ -e '$a elasticsearch soft nofile 655350' \ -e '$a elasticsearch hard nofile 655350' \ -e '$a * soft memlock unlimited' \ -e '$a * hard memlock unlimited' \ -e '$a elasticsearch soft memlock unlimited' \ -e '$a elasticsearch hard memlock unlimited' \ -i.bak \ /etc/security/limits.conf; \ swapoff -a;
使所有修改生效 reboot
l 命令 sysctl -p 可以使 sysctl.conf 的配置生效
l 重启 reboot 或者重新登陆 Ctrl + D 可以使 limits.conf 中的配置生效
创建 ES 所用账号并切换 useradd -m elasticsearch; su elasticsearch;
配置流程(详解版)
调整机器中每个进程可以拥有的 VMA(虚拟内存区域)的数量
1、修改文件:/etc/sysctl.conf
2、添加/修改一行:vm.max_map_count=655360
3、否则可能会遇到报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
调整机器中每个进程可打开的文件句柄数量
1、修改文件:/etc/security/limits.conf
2、添加/修改两组:(* 作用于所有用户,主要用于服务器直接部署 ES;elasticsearch作用于elasticsearch 用户,主要用于服务器 rpm 包部署)
l * soft nofile 65535 => * soft nofile 655350
l * hard nofile 65535 => * hard nofile 655350
l elasticsearch soft nofile 65535 => elasticsearch soft nofile 655350
l elasticsearch hard nofile 65535 => elasticsearch hard nofile 655350
○ 否则可能遇到报错:max file descriptors [65535] for elasticsearch process is too
low, increase to at least [65536]
开启内存锁定配置
1、修改文件:/etc/security/limits.conf
2、添加/修改两组:
l * soft memlock 65535 => * soft memlock unlimited
l * hard memlock 65535 => * hard memlock unlimited
l elasticsearch soft memlock 65535 => elasticsearch soft memlock unlimited
l elasticsearch hard memlock 65535 => elasticsearch hard memlock unlimited
○ 否则可能在开启了内存锁定时(bootstrap.memory_lock: true)遇到报错:memory
locking requested for elasticsearch process but memory is not locked
关闭内存交换区
1、swapoff -a
创建 ES 使用账号
1、ES 在启动时默认不允许使用 root 账户,所以需要预先创建 ES 自己的账户
l useradd -m elasticsearch
然后通过命令切换到 elasticsearch 账户中进行后续操作
1、su elasticsearch
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署—— 3.4.1.1.安装Elasticsearch(本地及docker)(3) https://developer.aliyun.com/article/1231511