ELK 性能优化实践 ---总结篇

版本及硬件配置

  • JDK:JDK1.8_171-b11 (64 位)
  • ES集群:由3台16核32G的虚拟机部署 ES 集群,每个节点分配 20 G 堆内存
  • ELK版本:6.3.0
  • 垃圾回收器:ES 默认指定的老年代(CMS)+ 新生代(ParNew)
  • 操作系统:CentOS Linux release 7.4.1708(Core)

jvm.options 文件

-Xms16g
-Xmx16g

-XX:NewSize=8G
-XX:MaxNewSize=8G

elasticsearch.yml文件

# 优化 fsync
"index.translog.durability": "async",
"index.translog.flush_threshold_size":"1024mb",
"index.translog.sync_interval": "120s"

# 优化 refresh
"index.refresh_interval":"5s"

# 优化 merge
"index.merge.scheduler.max_thread_count":"1"

# 优化线程池
# 线程数设置
thread_pool:
  write:
    # 线程数默认等于cpu核数,即16  
    size: 17
    # 因为任务多时存在任务拒绝的情况,所以加大队列大小,可以在间歇性任务量陡增的情况下,缓存任务在队列,等高峰过去逐步消费完。
    queue_size: 10000

#锁定内存,不让 JVM 写入 Swap,避免降低 ES 的性能
bootstrap.memory_lock: true

# 减少分片数、副本数
"index.number_of_shards": "3"
"index.number_of_replicas": "1"


posted @ 2021-01-14 15:36  哈喽哈喽111111  阅读(484)  评论(0编辑  收藏  举报