elasticsearch-6.1.2性能优化
1. 禁用交换内存
交换内存,也就是虚拟内存,通过虚拟技术把一部分硬盘当内存用,但是由于,硬盘的性能比内存是差很多的,在内存资源充足的情况下,应禁用交换内存,以提高elasticsearch的性能。
配置方式:修改/opt/elasticsearch-6.1.2/config/elasticsearch.yml
配置文件,将bootstrap.memory_lock: true
配置前面的#
删除
校验配置是否生效:curl http://es ip:9200/_nodes?filter_path=**.mlockall
,mlockall
为true
,则说明配置生效。
2. 修改JVM垃圾回收器
elasticsearch默认的垃圾回收器为CMS,在垃圾回收时,效率相对较差,而频繁的垃圾回收,将对导致elasticsearch的cpu负载较高,而G1垃圾回收器JDK新型的垃圾回收器,采用分块的垃圾回收方式,性能相对较高,并且经过调研发现,一些大的互联网公司,如美团,携程,es的垃圾回收器使用的都是G1。
修改elasticsearch-6.1.2/config/jvm.options
将下面三行注释
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
并添加以下配置
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
示例:
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50