elasticsearch三个重要的优化

一、内存优化
在bin/elasticsearch.in.sh中进行配置
修改配置项为尽可能大的内存:
ES_MIN_MEM=8g
ES_MAX_MEM=8g
二者最好改为同样的,不然容易引起长时间GC(stop-the-world)html

elasticsearch默认使用的GC是CMS GC
若是你的内存大小超过6G,CMS是不给力的,容易出现stop-the-world
建议使用G1 GC
注释掉:
JAVA_OPTS=”$JAVA_OPTS -XX:+UseParNewGC”
JAVA_OPTS=”$JAVA_OPTS -XX:+UseConcMarkSweepGC”java

JAVA_OPTS=”$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=75″
JAVA_OPTS=”$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly”
修改成:
JAVA_OPTS=”$JAVA_OPTS -XX:+UseG1GC”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxGCPauseMillis=200″node

若是G1 GC优势是减小stop-the-world在概率,可是CPU占有率高。
须要更优化的性能,你能够参考
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.htmlweb

二、合理配置主节点和数据节点
配置文件:conf/elasticsearch.yaml
node.master: true
node.data: trueoracle

1) 当master为false,而data为true时,会对该节点产生严重负荷;
2) 当master为true,而data为false时,该节点做为一个协调者;
3) 当master为false,data也为false时,该节点就变成了一个负载均衡器。负载均衡

三、设置合理的刷新时间
创建的索引,不会立马查到,这是为何elasticsearch为near-real-time的缘由
须要配置index.refresh_interval参数,默认是1s。
你能够像
http://zhaoyanblog.com/archives/299.html
文件中同样,调用接口配置
也能够直接写到conf/elasticsearch.yaml文件中
index.refresh_interval:1s
这样全部新建的索引都使用这个刷新频率。elasticsearch

相关文章
相关标签/搜索