elasticsearch重要但容易被忽略的几个参数设置

欢迎关注鄙人公众号,技术干货随时看!
elasticsearch重要但容易被忽略的几个参数设置_第1张图片

    elasticsearch目前是业内应用最广泛的大数据存储、搜索和分析引擎。因为开源免费,笔者认为没有之一!笔者多年的开发经验,elasticsearch可以完成大数据实时搜索、海量数据存储(PB级)、BI报表产出(kibana)等大数据所需的绝大多数应用。如果你用elasticsearch存储TB级以下的数据,下面讲的几个参数,你可能根本不用关心,但PB级以上时就有必要关注了。比人下文所讲的多数生产环境中遇到问题,在反复查阅elasticsearch官网文档得出的
    1、Xmx和Xms要设置一样的值,不只elasticsearch,所有的JAVA程序都一样,有经验的程序员应该都明白这一点
    2、Xmx越大越好吗!当然不是,对64位jvm来说超过32GB是没有意义的(c语言和c++无此限制),elasticsearch也不例外。Xmx的值有应该略低于jvm指针压缩(不明白指针压缩的参考其他资料)或零基指针压缩的极限值,此时elasticsearch性能达到最佳状态。最佳的经验值位于26GB到30GB之间。
    在${cluster.name}.log日志文件中有一行类似于下面的输出可判断是否超出了指针压缩的极限值:
    heap size [1.9gb], compressed ordinary object pointers [true]
    3、-XX:+UnlockDiagnosticVMOptions -XX:+PrintCompressedOopsMode(在jvm.options中设置,输出指针压缩的模式(普通指针压缩和零基指针压缩))可开启指针压缩和零基指针压缩的日志输出:
    heap address: 0x000000011be00000, size: 20648 MB, zero based Compressed Oops (低于零基指针压缩极限值)
    heap address: 0x0000000118400000, size: 28672 MB, Compressed Oops with base: 0x00000001183ff000(高于零基指针压缩极限值但低于普通指针压缩极限值)
    4、-XX:HeapDumpPath=data 参数,当内存溢出时,会把日志输出到此目录下。默认是输出到${ES_HOME}/data ,生产模式时,一般不要和数据存放于同一目录。
    5、ES_TMPDIR 设置,在bin/elasticsearch-env 开头设置即可,默认又能会使用系统的临时目录,因此会有被定时清理的风险。生产模式是最好自己指定:ES_TMPDIR=/data/elasticsearch/temp

你可能感兴趣的:(elasticsearch)