百亿数据下ES性能优化

2021-09-10 104浏览

  • 1. 百亿数据下ES性能优化 袋鼠云高级运维工程师—河图
  • 2. 02 ES集群性能优化 03 云日志平台的应用
  • 3. 需求背景: •  业务发展越来越快,系统间关联复杂,服务器器越来越多。 •  各种访问日日志、应用用日日志、错误日日志的文文件数量量越来越多。 •  运维、开发人人员排查问题时,需要到服务器器上找日日志,非非常不不方方便便。 •  运营小小姐姐统计一一些数据,也需要到服务器器上分析日日志。 那咋办呢?
  • 4. 基础ELK架构-适用测试环境
  • 5. ELKB架构-适用小规模日志场景
  • 6. ELKB+Kafka架构-适用大规模日志场景 袋鼠鼠云jlogstash开源项目目-Logstash数据处理理性能提升5倍 https://github.com/DTStack/jlogstash
  • 7. 01 日志分析的价值 03 云日志平台的应用
  • 8.
  • 9. 某大型互联网传媒公司 客户情况: l  日日志数据日日增2TB(约百亿条数据),峰值40万/秒 l  基于基础ELK架构、拥有80个节点。 l  索引写入入速度不不稳定 l  大大搜索时搜索超时,但ES持续负载飚高高 l  频繁young gc、full gc
  • 10. 核心问题 •  日志数据增量大小 •  日志保留时长 小规模数据量方案: 日日志增量量 索引推荐个数 保存天数 ES集群配置 10G 1天1~2个 5天~10天 3台4c8g 200G~500G 100G 500G 1天10个~20个 1天30~40个 5天~10天 5天~10天 master/data分离 master:2c4g data:5台8c 16g 1T~2T Hot-Warm Hot:5台16c 32g 4T Warm:4C 16G 4T 1T+++ 那大大规模数据数据ES集群如何规划
  • 11. 规划方案 规划结果 •  节点规划: master、data分离;冷热数据分离 •  内存规划: 30G的Heap 大大概能处理理10T的索引数据 超过64G内存的机器器运行行行多个ES实例例 •  硬盘规划: 多块磁盘;SSD •  索引规划: 划分业务系统,提前创建索引 大大索引按天分隔 小小索引使用用aliases •  分片规划: 每个分片片不不超过40GB 每个节点不不超过3个分片片 •  刷新时间: 5s(告警),10s(状态指标), 15~30s(文文本日日志) •  80+机器器优化到30+ •  接入入400+个服务器器,日日增80+个索引, 3TB+索引 •  120亿+条/天,峰值40w条/s,日日志保留留10天
  • 12. 现象描述: Ø  索引的写入入抖动非非常剧烈烈
  • 13. ES索引写入原理:从小文件合并成大文件 索引 合并过程 合并结果:
  • 14. Segment数量情况 Merge默认参数: 默认大小 默认大小 默认个数 大小增大10倍 默认个数 默认个数 那Merge应该如何调整 Segment内存情况 个数增加3倍 默认大小
  • 15. 调整Merge策略 l  针对大索引: max_merge_at_once: 10 max_merged_segment: 10gb segments_per_tier: 10 floor_segment: 20mb l  优化结果: 数据写入入非非常平稳 l  针对小索引: max_merge_at_once: 30 max_merged_segment: 5gb segments_per_tier: 30 floor_segment: 10mb
  • 16. 现象描述: Ø 在进行历史数据搜索时发现频繁搜索超时 Ø 超时后ES负载依旧很高 Ø 且偶尔伴随着OOM 土豪方案:加内存! 这个问题充钱就能解决! Ø  调整Linux系统参数: Ø  vm.swappiness=1 然而而土土豪方方案没有从根本解决问题 还有别的方方案吗
  • 17. 高性价比的方案——调整索引存储策略 index.store.type Ø  mmapfs(默认) -- 适用用于小小索引 Ø  niofs -- 适用用于大大索引、历史索引
  • 18. 观察到的现象: Ø  新生代垃圾回收频繁; Ø  full gc耗时长,导致节点失联 调整策略1: 调整后问题: 调整策略2: 调整后问题: 调整cms gc开始时间 -XX:CMSInitiatingOccupancyFraction=70 调整jvm heap比比例例 新生生代:老老老年年代 == 1:4 -XX:NewRatio=4 Full gc 间隔时间⻓长但是节点失联更更严重 需要不不断优化,动态调整该值 每次调整需要重启生生效
  • 19. 终极策略—调整GC CMS 调整值: G1 -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:GCPauseIntervalMillis=1000 -XX:InitiatingHeapOccupancyPercent=35 Ø  调整后目前还未出现full gc
  • 20. 部署&扩容: Ø  Ansible Ø  Ansible-playable
  • 21. 进程管控: Ø  supervisor Ø  cesi 索引管理: Ø  curator Ø  jiacrontab
  • 22. 监控方案: Ø  netdata – 单机 Ø  es_exporter + prometheus + grafana-集群
  • 23. 性能优化: Ø  Ø  Ø  Ø  elastic-hq:性能分析 cerebro:索引管理理、settings whatson:segment分析 es cat api
  • 24. Node: Indices: Ø  GC count/GC time Ø  Query time 查询耗时 Ø  Index time 索引耗时 Ø  Merge time 合并耗时 Ø  Segment count Ø  Segment memory Ø  Query time 查询耗时 Ø  Index time 索引耗时 Ø  Merge time 合并耗时 Ø  Index writer memory 写入入内存 Ø  Segment count Ø  Segment memory
  • 25. 新功能(beta): •  Infrastructure UI •  Logs UI 袋鼠鼠云日日志产品对以上功 能有成熟的解决方方案
  • 26. 01 ES集群概况 02 ES集群优化
  • 27. 是基于日志数据的运维分析产品 数据可视化 搜索和分析 数据采集 全栈式日志数据及范日志数 海量数据秒级搜索,并对大 日志数据展示,可通过自定 据采集汇总管理,不需要登 量数据源进行格式化分析整 义设置业务仪表盘展示数据, 录服务器即可批量部署 合解析,可视化配置解析规 生动直观展示机器情况和业 Agent并进行配置管理。 则。 务情况。
  • 28. 中间件 监控 业务监 控 业务监 控 数据库 监控 系统监 控 SaaS版云日日志使用用场景图 扫码注册体验SaaS版本云日日志 https://account.dtstack.com/#/login
  • 29. 调研业务 调研业务 深耕业务模式,了解具体操作 规范日志 落地培训 云日志服务 Text here 规范日志 对需求日志进行字段提取和规范化 场景规划 对于日志进行场景的规划 落地培训 场景规划 对企业人员进行培训和落地实施,让方案得以实现
  • 30. 袋鼠云丨数据智能,让未来变成现在 袋鼠云成立于2016年,是国内领先的 立以来,袋鼠云始终坚持 的理念,将数据 智能的先进理念和技术传播和应用到传统行业中,在“一切业 务数据化”的基础上,通过帮助挖掘客户的数据价值,实现“ 4地 1亿 。自创 一年半内累计融资1个亿,入 总部坐落于人间天堂杭州 选2018年杭州“准独角兽” ,在北京、上海、贵州均 设有分公司或办事处 榜单 3000+ 一切数据业务化”,帮助提升生产效率,促进产业创新和社会 客户选择和袋鼠云数智同行 进步。 7项 作为阿里云战略合作伙伴,阿里 公司总人数超过200人,其 云生态技术先锋,拥有7项阿里云 中80%为技术人员,每年数千 合作伙伴认证,超过10位阿里云 全球MVP 使命 :让数据产生价值 愿景 :做最领先的数据智能践行者 80% 万研发投入 价值观 :客户第一、团队合作、专业、担当
  • 31. THANKS 电话:400 002 1024 网址:www.dtstack.com 微 信 公 众 号
  • 32. 专业、垂直、纯粹的 Elastic 开源技术交流社区 https://elasticsearch.cn/