学习
实践
活动
工具
TVP
写文章

eBay的Elasticsearch性能实践

39670

ELK系列(5) - Elasticsearch性能

可以通过以下方式来释放分段占用的内存: 删除不用的索引 关闭索引,此时数据依然存在于磁盘,但是占用的内存会被释放 定期合并不再更新的索引的分段,将多个小分段合并成大分段,具体接口可以参考这部分文章 参考链接 Elasticsearch ——segment memory

13110
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【干货】Elasticsearch性能权威指南(13)

    本文翻译自QBox官方博客“Elasticsearch性能权威指南”系列文章的第一篇,主要从集群拓扑结构、分片与副本、容量规划以及内存优化等方面介绍了性能的基本原理和实践策略。 是必需、必要和重要的!任何系统的都必需有性能度量指标的支持,因此对监控的清晰理解,以及对变化的度量指标的映射,对所有Elasticsearch用户来说非常必要。 本系列教程的3篇文章将会介绍一些性能的技巧和方法,并解释与每一步最相关的系统配置设置和度量。 单单是管理负荷就能降低ES集群的性能;如果有太多的索引或分片的话,甚至可能导致集群状态变成红色。有太多索引或分片且超负荷的ES集群,其索引和查询性能也会受到非常大的影响。 ES提供了弱结构化的灵活性。 交换对于性能和节点稳定性来说都很糟糕的,应该尽可能地避免。它可能引发持续数分钟而不是几毫秒的GC,还可能导致节点响应过慢甚至从集群失联。

    54910

    【干货】Elasticsearch性能权威指南(13)

    本文翻译自QBox官方博客“Elasticsearch性能权威指南”系列文章的第一篇,主要从集群拓扑结构、分片与副本、容量规划以及内存优化等方面介绍了性能的基本原理和实践策略。 是必需、必要和重要的!任何系统的都必需有性能度量指标的支持,因此对监控的清晰理解,以及对变化的度量指标的映射,对所有Elasticsearch用户来说非常必要。 本系列教程的3篇文章将会介绍一些性能的技巧和方法,并解释与每一步最相关的系统配置设置和度量。 单单是管理负荷就能降低ES集群的性能;如果有太多的索引或分片的话,甚至可能导致集群状态变成红色。有太多索引或分片且超负荷的ES集群,其索引和查询性能也会受到非常大的影响。 ES提供了弱结构化的灵活性。 交换对于性能和节点稳定性来说都很糟糕的,应该尽可能地避免。它可能引发持续数分钟而不是几毫秒的GC,还可能导致节点响应过慢甚至从集群失联。

    27220

    Elasticsearch实践

    性能 Linux参数 1. 关闭交换分区,防止内存置换降低性能。 磁盘挂载选项 noatime:禁止记录访问时间戳,提高文件系统读写性能 data=writeback: 不记录data journal,提高文件系统写入性能 barrier=0:barrier保证journal ,因为SSD提供了更智能的请求调度算法,不需要内核去做多余的调整 (仅供参考) echo noop > /sys/block/sda/queue/scheduler ES节点配置 文件路径:conf/elasticsearch.yml 稳定性 Linux参数 # 修改系统资源限制 # 单用户可以打开的最大文件数量,可以设置为官方推荐的65536或更大些 echo "* - nofile 655360" >>/etc/security # 专有master节点的配置文件(conf/elasticsearch.yml)增加如下属性: node.master: true node.data: false node.ingest: false

    21511

    Elasticsearch实践

    而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。 本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数、ES节点配置和ES使用方式三个角度入手,介绍ES的基本方案。 当然,ES的绝不能一概而论,需要根据实际业务场景做适当的取舍和调整,文中的疏漏之处也随时欢迎批评指正。 Elastic Stack 性能 一 Linux参数 1. 磁盘挂载选项 noatime:禁止记录访问时间戳,提高文件系统读写性能 data=writeback: 不记录data journal,提高文件系统写入性能 barrier=0:barrier保证journal 稳定性 一 Linux参数 # 修改系统资源限制 # 单用户可以打开的最大文件数量,可以设置为官方推荐的65536或更大些 echo "* - nofile 655360" >>/etc/security

    1.2K20

    Elasticsearch实践

    而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。 本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数、ES节点配置和ES使用方式三个角度入手,介绍ES的基本方案。 当然,ES的绝不能一概而论,需要根据实际业务场景做适当的取舍和调整,文中的疏漏之处也随时欢迎批评指正。 [Elastic Stack] 性能 一 Linux参数 1. 磁盘挂载选项 noatime:禁止记录访问时间戳,提高文件系统读写性能 data=writeback: 不记录data journal,提高文件系统写入性能 barrier=0:barrier保证journal 稳定性 一 Linux参数 # 修改系统资源限制 # 单用户可以打开的最大文件数量,可以设置为官方推荐的65536或更大些 echo "* - nofile 655360" >>/etc/security

    12.5K4427

    elasticsearch5.3.0 bulk index 性能实践

    这里使用filebeat+logstash+elasticsearch的方案收集、存储日志数据并提供查询。当前的使用场景里,每天有70亿条日志需要存储,属于写多读少的场景。 本文整理了在搭建elasticsearch集群的时候需要注意的配置项,通过对这些配置项的调整,期望提高elasticsearch写入的性能。 一、集群基本信息 1. 每天日志量70亿 2. index.store.throttle.max_bytes_per_sec可以在节点级或者index级限制merge操作消耗的磁盘带宽,防止因为merge导致磁盘高负载,影响其他操作 另一篇关于ES2.x index的文章里讲到 目标: 优化index性能 2. 主要降低index性能的因素: 磁盘IO(基于观察,负载非常高) 3. 五、结论 以上测试可以看到 translog优化禁用的时候集群负载最高,写入性能最差 index refresh操作对写入的性能略有影响 segment merge对写入性能影响非常小 附录 1.

    2.8K00

    ElasticSearch集群

    ElasticSearch集群 1、节点发现 单播:可以指定连接主机地址,一般设为master节点地址,如果集群环境存在多个es集群,一般使用此方法,比较安全。 在elasticSearch.yml中添加一下配置 discovery.zen.ping.unicast.hosts: ["*.*.*.61:9301", "*.*.*..62:9301","10.162.24.63 2、节点的选取配置 在elasticSearch.yml中添加一下配置 主节点配置 node.master: true node.data: false 数据节点配置 node.master: false : discovery.zen.minimum_master_nodes: n(n:有主节点资格并互相连接的最小数目,一般是所有集群数目+1的50%) 3、时光之门 配置集群数据和元数据的避风港: 在elasticSearch.yml index.refresh_interval属性,默认1s(1秒),刷新率是指定文档多快可以对搜索操作可见,等式非常简单:刷新率越快,查询越慢,索引的吞吐量越低,如果我们允许有一个较慢的刷新率,如10s或者30s,设置他是不错的,这使得ElasticSearch

    26930

    Elasticsearch实践

    而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。  本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数、ES节点配置和ES使用方式三个角度入手,介绍ES的基本方案。 当然,ES的绝不能一概而论,需要根据实际业务场景做适当的取舍和调整,文中的疏漏之处也随时欢迎批评指正。 ? 性能 一 Linux参数 1. 关闭交换分区,防止内存置换降低性能。 磁盘挂载选项 noatime:禁止记录访问时间戳,提高文件系统读写性能 data=writeback: 不记录data journal,提高文件系统写入性能 barrier=0:barrier保证journal 稳定性 一 Linux参数 # 修改系统资源限制# 单用户可以打开的最大文件数量,可以设置为官方推荐的65536或更大些echo "* - nofile 655360" >>/etc/security

    2.6K61

    SQL性能

    WHERE column1 = -column2 3 还是可以带来查询性能的优化的。 针对专门操作符的 前面,讲的是关于查询条件的一般规则,在这一节中,将讨论如何使用专门的操作符来改进 SQL 代码的性能。 当一些优化器发现查询中存在 OR 操作符时,就不使用索引查询,所以在这种情况下,并且只有在这种情况下,UNION 才比 OR 性能更高。 以上是作者对如何提高 SQL 性能的一些总结,这些规则并一定在所有的数据库系统上都能带来性能的提高,但是它们一定不会对数据库的性能带来下降,所以掌握并使用这些规则可以对数据库 应用程序的开发有所帮助。 本文总结的是一些 SQL 性能的比较初级的方面,SQL 还包括 Order by,Group by 以及 Index 等等。

    23030

    Tomcat 性能之 JVM

    因此在对Web 容器( 应用服务器) 的中必不可少的是对于 JVM 的。 对于 JVM 的,主要有两个方面考虑: 内存大小配置 垃圾回收算法选择 当然,确切的说,以上两点并不互相独立,内存的大小配置也会影响垃圾回收的执行效率。 延迟、吞吐量 其他 JVM 配置 垃圾回收算法对应到的就是不同的垃圾收集器,具体到在 JVM 中的配置,是使用 -XX:+UseParallelOldGC 或者 -XX:+UseConcMarkSweepGC 所谓,就是一个不断调整和优化的过程,需要观察、配置、测试再如此重复。有相关经验的朋友欢迎留言补充! 说到底,那上面的这些选项是要配置在哪里呢?

    48830

    Spark 性能之开发

    如果没有对Spark作业进行合理的,Spark作业的执行速度可能会很慢,这样就完全体现不出Spark作为一种快速大数据计算引擎的优势来。因此,想要用好Spark,就必须对其进行合理的性能优化。 Spark的性能实际上是由很多部分组成的,不是调节几个参数就可以立竿见影提升作业性能的。 笔者根据之前的Spark作业开发经验以及实践积累,总结出了一套Spark作业的性能优化方案。整套方案主要分为开发、资源、数据倾斜、shuffle几个部分。 开发和资源是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础;数据倾斜,主要讲解了一套完整的用来解决Spark作业数据倾斜的解决方案;shuffle,面向的是对 本文作为Spark性能优化指南的基础篇,主要讲解开发。 2. 开发 2.1 概述 Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则。

    19631

    Spark 性能之Shuffle

    概述 大多数 Spark 作业的性能主要就是消耗在了 shuffle 环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。 因此,如果要让作业的性能更上一层楼,就有必要对 shuffle 过程进行。 但是也必须提醒大家的是,影响一个 Spark 作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle 只能在整个 Spark 的性能中占到一小部分而已。 建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如96m),从而减少拉取数据的次数,也就可以减少网络传输的次数,进而提升性能。 ,建议参考后面的几个参数,通过 bypass 机制或优化的 HashShuffleManager 来避免排序操作,同时提供较好的磁盘读写性能

    36530

    Spark 性能之资源

    Spark的性能实际上是由很多部分组成的,不是调节几个参数就可以立竿见影提升作业性能的。 笔者根据之前的Spark作业开发经验以及实践积累,总结出了一套Spark作业的性能优化方案。整套方案主要分为开发、资源、数据倾斜、shuffle几个部分。 开发和资源是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础;数据倾斜,主要讲解了一套完整的用来解决Spark作业数据倾斜的解决方案;shuffle,面向的是对 本文作为Spark性能优化指南的基础篇,主要讲解资源。 2. 资源 2.1 概述 在开发完Spark作业之后,就该为作业配置合适的资源了。 这个参数极为重要,如果不设置可能会直接影响你的Spark作业性能。 参数建议:Spark作业的默认task数量为500-1000个较为合适。

    70530

    陈曦:性能与稳定并存 Elasticsearch实践

    多年云服务后台支撑系统研发经验,在日志分析、数据搜索、时序数据库研发、大型Elasticsearch集群优等方面有较为丰富的实践经验。 我今天分享的是Elassticsearch实践,首先自我介绍一下,我资历比较浅,我是腾讯TEG基础架构部后台开发工程师,虽然我不是项目经理,但是我们项目负责人就在下面,我还是很有压力的。 第二部分就是Elassticsearch的,通用的方案,这个地方列了几个点。有没有同学分享一下拿ES存储的什么东西,跟大家分享一下你们的方案。 [ar6vffd9cd.png] ES的第二部分主要是从三个层面分享,存储成本、集群稳定性和集群性能。存储成本是字段存储选项和为字符串字段选择合适的格式。 陈曦:性能与稳定并存 Elasticsearch实践.pdf

    95330

    Glusterfs性能

    指定了接收和发送套接字缓冲区大小的最大值,对于小文件小文件请求处理时候效率比较高 net.core.rmem_max=67108864 net.core.wmem_max=67108864 //为自动定义每个 net.ipv4.tcp_rmem=33554432 net.ipv4.tcp_wmem=33554432 Gluster参数 读写性能参数优化 // 打开metadata-cache,打开这个选项可以提高在 这尤其会影响小文件的性能,其中大量文件被快速连续地添加/创建。 gluster volume get dht-vol performance.readdir-ahead on // 设置performance.readdir-ahead的内存,默认是10mb,可以适当大 rep-vol cluster.shd-max-threads 64 //修复的数据快大小,默认是1(1*128k),默认是按照128K数据快修复,如果需要修复的数据很大,这个默认1太小,可以适当的

    33741

    Spark性能01-资源

    理解作业基本原理,是我们进行资源参数的基本前提。 3. spark内存管理 (1) spark-1.5.x版本以前使用静态内存管理 ? Executor内存的大小,很多时候直接决定了Spark作业的性能,而且跟常见的JVM OOM异常,也有直接的关联。 参数建议: 每个Executor进程的内存设置4G~8G较为合适。 参数建议: Executor的CPU core数量设置为2~4个较为合适。 参数建议: Driver的内存通常来说不设置,或者设置1G左右应该就够了。 这个参数极为重要,如果不设置可能会直接影响你的Spark作业性能。 参数建议: Spark作业的默认task数量为500~1000个较为合适。

    40820

    Spark性能06-JVM

    Spark 和 JVM 的关系 再JVM虚拟机中,当创建的对象的数量很多时,Eden 和 Survior1 区域会很快的满溢,就需要进行频繁地 Minor GC,这样会导致有一些生命周期较短的对象迅速长到 Spark的JVM spark.storage.memoryFraction 参数说明: 该参数用于设置RDD持久化数据在Executor内存中能占的比例,默认是0.6。 根据你选择的不同的持久化策略,如果内存不够时,可能数据就不会持久化,或者数据会写入磁盘 参数建议: 如果Spark作业中,有较多的RDD持久化操作,该参数的值可以适当提高一些,保证持久化的数据能够容纳在内存中 shuffle操作在进行聚合时,如果发现使用的内存超出了这个20%的限制,那么多余的数据就会溢写到磁盘文件中去,此时就会极大地降低性能 参数建议: 如果Spark作业中的RDD持久化操作较少,shuffle 操作数量、RDD持久化操作数量以及spark web ui中显示的作业gc情况)来灵活的 4.

    46110

    扫码关注腾讯云开发者

    领取腾讯云代金券