• ElasticSearch优化


    1. 多线程程序插入,可以根据服务器情况开启多个线程index 
    速度可以提高n倍, n>=2 

    2. 如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias 
    curl -XPUT 'http://10.1.*.*:9200/dw-search/' -d '{ 
        "settings" : { 
            "number_of_shards" : 20, 
            "number_of_replicas" : 0 
        } 
    }' 
    这里设置20个shards, 复制为0,如果需要replicas,可以完成index后再修改为replicas>=1 
    原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index.html 

    3. 提高ES占用内存 
    内存适当调大,初始是256M, 最大1G, 
    调大后,最小和最大一样,避免GC, 并根据机器情况,设置内存大小, 
    $ bin/elasticsearch -f -Xmx4g -Xms4g -Des.index.storage.type=memory 
    原文:http://www.elasticsearch.org/guide/reference/setup/installation.html 

    4. 减少shard刷新间隔 
    curl -XPUT 'http://10.1.*.*:9200/dw-search/_settings' -d '{ 
        "index" : { 
            "refresh_interval" : "-1" 
        } 
    }' 

    完成bulk插入后再修改为初始值 
    curl -XPUT 'http://10.1.*.*:9200/dw-search/_settings' -d '{ 
        "index" : { 
            "refresh_interval" : "1s" 
        } 
    }' 

    5. 设置一个shard的段segment最大数 
    可以减少段文件数,提高查询速度 
    curl -XPOST 'http://10.1.*.*:9200/dw-search/_optimize?max_num_segments=5' 
    注意:有时候可能需要多次执行 
    原文:http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings.html 
    原文:http://www.elasticsearch.org/guide/reference/index-modules/merge.html 

    6. 去掉mapping中_all域 
    Index中默认会有_all的域,这个会给查询带来方便,但是会增加索引时间和索引尺寸 
    "_all" : {"enabled" : false} 
    原文:http://www.elasticsearch.org/guide/reference/mapping/all-field.html 
    curl -XPOST 'http://10.1.*.*:9200/dw-search/pt_normal/_mapping' --data-binary @pt_normal_properties.mapping 

    7. 设置source为压缩模式或者disable 
    compress=true这个能大大减少index的尺寸 
    disable将直接没有_source域 

    8. 增加merge.policy.merge_factor数 
    设置merge.policy.merge_factor到30,初始是10 
    增加这个数需要更多的内存,bulk index可以调大这个值. 
    如果是即时索引,应该调小这个值 
    原文:http://www.elasticsearch.org/guide/reference/index-modules/merge.html 

  • 相关阅读:
    Centos7 tomcat 启动权限
    Tomcat下post请求大小设置
    postgres安装时locale的选择
    flink 1.11.2 学习笔记(1)-wordCount
    prometheus学习笔记(3)-使用exporter监控mysql
    prometheus学习笔记(2)-利用java client写入数据
    mock测试及jacoco覆盖率
    shading-jdbc 4.1.1 + tk.mybatis + pagehelper 1.3.x +spring boot 2.x 使用注意事项
    prometheus学习笔记(1)-mac单机版环境搭建
    redis数据类型HyperLogLog的使用
  • 原文地址:https://www.cnblogs.com/chenchenbaba/p/5977083.html
Copyright © 2020-2023  润新知