百亿数据下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/