wtxnpw 发表于 2019-1-29 09:02:36

elasticsearch三个重要的优化

  编辑:elasticsearch-2.3.3/bin/ elasticsearch
  加上:
export ES_HEAP_SIZE=10g  或者启动的时候设置参数,确保Xmx和Xms大小相等:
./bin/elasticsearch -Xmx10g -Xms10g  1、内存优化
  在bin/elasticsearch.in.sh中进行配置
  修改配置项为尽量大的内存:
  ES_MIN_MEM=8g
  ES_MAX_MEM=8g
  两者最好改成一样的,否则容易引发长时间GC(stop-the-world)
  elasticsearch默认使用的GC是CMS GC
  如果你的内存大小超过6G,CMS是不给力的,容易出现stop-the-world
  建议使用G1 GC
  注释掉:
  JAVA_OPTS=”$JAVA_OPTS -XX:+UseParNewGC”
  JAVA_OPTS=”$JAVA_OPTS -XX:+UseConcMarkSweepGC”
  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″
  如果G1 GC优点是减少stop-the-world在几率,但是CPU占有率高。
  需要更优化的性能,你可以参考
  http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/G1GettingStarted/index.html
  2、合理配置主节点和数据节点
  配置文件:conf/elasticsearch.yaml
  node.master: true
  node.data: true
  1) 当master为false,而data为true时,会对该节点产生严重负荷;
  2) 当master为true,而data为false时,该节点作为一个协调者;
  3) 当master为false,data也为false时,该节点就变成了一个负载均衡器。
  3、设置合理的刷新时间
  建立的索引,不会立马查到,这是为什么elasticsearch为near-real-time的原因
  需要配置index.refresh_interval参数,默认是1s。
  你可以像
  http://zhaoyanblog.com/archives/299.html
  文件中一样,调用接口配置
  也可以直接写到conf/elasticsearch.yaml文件中
  index.refresh_interval:1s
  这样所有新建的索引都使用这个刷新频率。


页: [1]
查看完整版本: elasticsearch三个重要的优化