2021-07-08

elasticsearch性能调优

一、配置文件调优

  • 内存锁定
    bootstrap.memory_lock:true 允许JVM锁住内存,禁止操作系统交换出去。

  • 设置indices的内存熔断相关参数,防止写入或者查询压力过高导致OOM
    indices.breaker.total.limit:50%,集群级别的断路器,默认为jvm堆的70%。
    indices.breaker.request.limit:10%,单个request的断路器限制,默认为jvm堆的60%;
    indices.breaker.fielddata.limit:10%,fielddata breaker限制,默认为jvm堆的60%。
    indices.queries.cache.size: 5%,控制过滤器缓存的内存大小,避免查询占用过多的jvm 内存
    具体比例数值可根据具体情况设置

二、从系统上调优

  • 根据官方建议选择对应的JDK版本

  • JDK配置:-xms和-xmx设置为相同的值,避免在允许过程中再进行内存分配,同时,如果系统内存小于64G,建议设置略小于机器内存的一半,同时,JVM heap建议不要超过32G,否则会因为内存指针压缩导致内存浪费。

  • 关闭交换分区,防止内存交换导致性能下降

  • 加大文件句柄数。
    ulimit -n 65536

  • mmap
    sysctl -w vm.max_map_count=262144 或者你可以在 /etc/sysctl.conf 通过修改 vm.max_map_count 永久设置它。

三、从磁盘上调优

  • 磁盘挂载
    mount -o noatime,data=writeback,barrier=0,nobh /dev/sd* /esdata* 其中,noatime,禁止记录访问时间戳;data=writeback,不记录journal;barrier=0,因为关闭了journal,所以同步关闭barrier;nobh,关闭buffer_head,防止内核影响数据IO。

  • 其它
    使用 RAID 0。条带化 RAID 会提高磁盘I/O,代价显然就是当一块硬盘故障时整个就故障了,不要使用镜像或者奇偶校验 RAID 因为副本已经提供了这个功能。
    另外,使用多块硬盘,并允许 Elasticsearch 通过多个 path.data 目录配置把数据条带化分配到它们上面。不要使用远程挂载的存储,比如 NFS 或者 SMB/CIFS。这个引入的延迟对性能来说完全是背道而驰的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值