ES6.3

应用场景为:重写入轻查询

关闭swap分区 swapoff -a 临时生效 vim /etc/fstab 永久生效

内存设置不建议超过32G: 对于大内存主机设备,ES JVM内存建议不要超过32G,配置为31G即可

更换默认垃圾回收器(默认回收器为CMS) 原配置: -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly 改为: -XX:+UseG1GC -XX:G1HeapRegionSize=32M

注释:使用G1回收器时,建议JDK版本大于1.8_131; 目前甜橙使用版本:1.8_201

设置合理的分片数,建议单个分片大小控制在30GB左右 比如数据量为1Tb的索引,建议分片数量控制在35个左右为佳

按需设置副本数,如数据不重要,可考虑不设副本; PUT /索引名称/_settings { "index": { "number_of_replicas": "0" } }

写入线程池优化: thread_pool.write.size: 65(默认为CPU核数,最大为cpu核数+1) thread_pool.write.queue_size: 1000(默认为200,建议调整为最大1000)

调整index buffer的大小(默认为jvm内存的10%) indices.memory.index_buffer_size: 25%

调整index.refresh_interval时间 PUT /索引名称/_settings { "settings": { "refresh_interval": "120s" } }

调整Translog配置: PUT /索引名称/_settings { "index.translog.durability" : "async", "index.translog.flush_threshold_size" : "1024mb", "index.translog.sync_interval" : "120s" }

注:"index.translog.sync_interval" : "120s" 此参数无法调整正在写入的索引,需先将索引关闭后方可配置; 关闭索引: POST /索引名称/_CLOSE 开启索引: POST /索引名称/_OPEN

调整Segment Merge操作: PUT /索引名称/_settings { "index.merge.policy.max_merged_segment": "2gb", "index.merge.scheduler.max_thread_count": 5, ”index.merge.policy.max_merge_at_once": 30, "index.merge.policy.segments_per_tier": 30 }

横向扩展数据节点: 对于大资源主机,内存超过128G的主机而言 建议充分利用起性能,可部署多实例(数据节点); 建议加上以下配置: cluster.routing.allocation.same_shard.host: true cluster.routing.allocation.cluster_concurrent_rebalance: 10 cluster.routing.allocation.node_concurrent_recoveries: 10

##设置恢复速率(默认为2GB): PUT _cluster/settings { "persistent": { "indices.recovery.max_bytes_per_sec": "10240m" } }

拆分大索引 对于大数据量的索引(2T),建议拆分为多个小索引; 按日切割或者按小时切割;

增大每批次入库数据量,这个量大小需要不断调整,太大不好,太小也好; 甜橙单个server每批次入库数量为6000

最终配置: "index.translog.durability" : "async" "index.translog.flush_threshold_size" : "1024mb" "index.translog.sync_interval" : "120s" "index.merge.policy.max_merged_segment": "2gb" "index.translog.sync_interval" : "120s"

上次更新时间: 2024/5/7 05:59:02