百亿数据下ES性能优化
如果无法正常显示,请先停止浏览器的去广告插件。
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/