理想情况下,Elasticsearch应该在服务器上单独运行并使用它可用的所有资源。为此,您需要配置操作系统以允许运行Elasticsearch的用户访问比默认允许的资源更多的资源。
在投入生产之前,必须考虑以下设置:
- 禁用交换
- 增加文件描述符
- 确保足够的虚拟内存
- 确保足够的线程
- JVM DNS缓存设置
开发模式与生产模式
默认情况下,Elasticsearch假定您正在开发模式下工作。如果未正确配置上述任何设置,则会向日志文件写入警告,但您将能够启动并运行Elasticsearch节点。
一旦配置了类似的网络设置network.host,Elasticsearch就会假定您正在转向生产并将上述警告升级为异常。这些异常将阻止您的Elasticsearch节点启动。这是一项重要的安全措施,可确保您不会因服务器配置错误而丢失数据。
禁止交换
bootstrap.memory_lock: true添加至config/elasticsearch.yml
设置/etc/security/limits.conf elsearch soft memlock unlimited elsearch
hard memlock unlimited
文件描述符
$ ulimit -n
1024
—1024太小了,要重新设置,但不能大于系统限制(不能超过/proc/sys/fs/nr_open, /proc/sys/fs/file-max)
vi /etc/security/limits.conf
elsearch soft nofile 64000
elsearch hard nofile 64200
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
sysctl -p – 不用重启系统令修改生效的方法
sysctl -w fs.file-max=64000
—这样配置,要重启电脑
虚拟内存
修改max_map_count sysctl -w vm.max_map_count=655300 vi
/proc/sys/vm/max_map_count 655300
线程数
vi /etc/security/limits.conf elsearch soft nproc 4096 elsearch hard
nproc 4096