• elasticsearch堆内存的配置建议


    1、将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等

    防止内存抖动

     

    2:给多大的堆内存?

    给ES的内存配置不是越大越好,建议不能超过32GB,不同jdk版本最大边界值是不同的,对于32位小于32G JVM才采用内存对象指针压缩技术,不然对象指针需要占用很大的内存; 一旦你越过那个神奇的30-32G的边界,指针就会切回普通对象的指针,意味着就算给ES100G的内存,ES仍然最多使用30-32G的内存;

     

    3、预留一半的内存给lucene

     

    假如设备的内存是64G , 那就要预留出32G的内存给Lucene,Lucene的设计目的是把底层OS里的数据缓存到内存中。Lucene的段是分别存储到单个文件中的,这些文件都是不会变化的,所以很利于缓存,同时操作系统也会把这些段文件缓存起来,以便更快的访问。

    建议是把50%的内存给elasticsearch,剩下的50%也不会没有用处的,Lucene会很快吞噬剩下的这部分内存

     

    4、*swapping**是性能的坟墓*

    内存交换到磁盘对服务器性能来说是致命的。想想看一个内存的操作必须是快速的。 如果内存交换到磁盘上,一个100微秒的操作可能变成10毫秒,再想想那么多10微秒的操作时延累加起来。不难看出swapping对于性能是多么可怕。 最好的办法就是在你的操作系统中完全禁用swapping

    暂时禁用:sudo swapoff -a

    永久禁用:

    修改参数的方法是修改/etc/sysctl.conf文件,加入vm.swappiness=xxx,并重起系统。这个操作相当于是修改虚拟系统中的/proc/sys/vm/swappiness文件,将值改为XXX数值。

    如果不想重起,可以通过sysctl -p动态加载/etc/sysctl.conf文件,但建议这样做之前先清空swap。

     

    以上系统参数配置完成,还要修改elasticsearch.yml配置:

    bootstrap.memory_lock : true 锁定内存,防止进行内存的交换使用swapping

  • 相关阅读:
    关于Java中System.currentTimeMillis和System.nanoTime的错误认识
    多线程以外
    vim 小技巧
    Virtual Box HostOnly网络模式配置
    How 30 Minutes a Day Can Increase Your Intelligence
    YUM命令使用
    Hash算法及其应用
    jetty + apache httpd 反向代理配置
    使用SCTP优化网络
    .NET书籍推荐
  • 原文地址:https://www.cnblogs.com/niutao/p/10909352.html
Copyright © 2020-2023  润新知