专栏名称: DBAplus社群
围绕数据库、大数据、PaaS云,顶级大咖、技术干货,运营几个月受众过十万!成为运维圈最专注围绕“数据”的学习交流和专业社群!欢迎投稿,加入探讨。
目录
相关文章推荐
数据中心运维管理  ·  施耐德电气PowerLogic™ ... ·  18 小时前  
数据中心运维管理  ·  6月1日起实施!我国首部绿色数据中心评价国标 ... ·  昨天  
数据中心运维管理  ·  应急预案和应急演练到底怎么做? ·  18 小时前  
51好读  ›  专栏  ›  DBAplus社群

建议收藏!一次看完28个关于ES的性能调优技巧

DBAplus社群  · 公众号  · 数据库  · 2020-11-11 07:15

正文

请到「今天看啥」查看全文


  • indices.breaker.fielddata.limit :10%,fielddata breaker限制,默认为jvm堆的60%。


  • https://www.elastic.co/guide/en/elasticsearch/reference/6.x/circuit-breaker.html


    根据实际情况调整查询占用cache,避免查询cache占用过多的jvm内存,参数为静态的,需要在每个数据节点配置。indices.queries.cache.size: 5%,控制过滤器缓存的内存大小,默认为10%。接受百分比值,5%或者精确值,例如512mb。


    https://www.elastic.co/guide/en/elasticsearch/reference/6.x/query-cache.html


    6、创建shard


    如果集群规模较大,可以阻止新建shard时扫描集群内全部shard的元数据,提升shard分配速度。


    cluster.routing.allocation.disk.include_relocations: false ,默认为true。


    https://www.elastic.co/guide/en/elasticsearch/reference/6.x/disk-allocator.html


    二、系统层面调优


    1、jdk版本


    当前根据官方建议,选择匹配的jdk版本。


    2、jdk内存配置


    首先,-Xms和-Xmx设置为相同的值,避免在运行过程中再进行内存分配,同时,如果系统内存小于64G,建议设置略小于机器内存的一半,剩余留给系统使用。


    同时,jvm heap建议不要超过32G(不同jdk版本具体的值会略有不同),否则jvm会因为内存指针压缩导致内存浪费,详见:


    https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html


    3、交换分区


    关闭交换分区,防止内存发生交换导致性能下降(部分情况下,宁死勿慢) swapoff -a


    4、文件句柄


    Lucene 使用了 大量的 文件。同时,Elasticsearch 在节点和 HTTP 客户端之间进行通信也使用了大量的套接字,所有这一切都需要足够的文件描述符,默认情况下,linux默认运行单个进程打开1024个文件句柄,这显然是不够的,故需要加大文件句柄数 ulimit -n 65536。


    https://www.elastic.co/guide/en/elasticsearch/reference/6.5/setting-system-settings.html


    5、mmap


    Elasticsearch 对各种文件混合使用了 NioFs( 注:非阻塞文件系统)和 MMapFs ( 注:内存映射文件系统)。 请确保你配置的最大映射数量,以便有足够的虚拟内存可用于 mmapped 文件。


    这可以暂时设置:sysctl -w vm.max_map_count=262144 或者你可以在 /etc/sysctl.conf 通过修改 vm.max_map_count 永久设置它。


    https://www.elastic.co/guide/cn/elasticsearch/guide/current/_file_descriptors_and_mmap.html


    6、磁盘






    请到「今天看啥」查看全文