美图 唐扬 美图秀秀社区化的性能优化探索与实践
2020-03-01 204浏览
- 1.美图秀秀社区化的性能优化探索 与实践 唐扬 美图 后端技术负责人
- 2.讲师简介 唐扬 美图秀秀社区后端负责人 网易微博 网易花田 2010 2018 美图秀秀 2013 新浪微博
- 3.讲师简介 唐扬 美图秀秀社区后端负责人 网易微博 网易花田 2010 2018 美图秀秀 2013 新浪微博
- 4.演讲大纲 Ø 社区现状和挑战 Ø 性能优化关注点 Ø 如何合理评估系统性能 Ø 美图秀秀社区性能优化实践
- 5.背景 Ø 依托于工具 Ø 图片社区 Ø 增长迅猛
- 6.挑战 大流量 产品迭代快 依赖复杂
- 7.演讲大纲 Ø 社区现状和挑战 Ø 性能优化关注点 Ø 如何合理评估系统性能 Ø 美图秀秀社区性能优化实践
- 8.美图秀秀社区架构 监控告警 Grafana 用户层 网络层 InfluxDB 服务层 用 户 资源层 DB 内 容 互 动 Falcon 云 存 储 云 处 理 C D N ELK 报警 缓 存 队 列 依赖层 算 法 广 告 搜 索
- 9.性能优化关注点 CDN 网络延迟 用户体验 错误率 响应时间 卡顿
- 10.演讲大纲 Ø 社区现状和挑战 Ø 性能优化关注点 Ø 如何合理评估系统性能 Ø 美图秀秀社区性能优化实践
- 11.如何合理评估系统性能 一体化监控 全链路压测
- 12.一体化监控 基础监控 客户端监控 一体化监控 应用监控 容器监控 链路监控 资源监控
- 13.客户端监控 - hubble 实时反映用户体验 性能优化的指向标 CDN监控利器
- 14.客户端监控 - hubble 地区 运营商 网络错误 平台 耗时统计 域名 请求统计 网络类型 维度 指标
- 15.客户端监控 - hubble 分步耗时统计 等 待 时 间 DNS 时间 握手 时间 SSL 时间 发 送 时 间 首包时间 包接收 时间
- 16.客户端监控 - hubble
- 17.客户端监控 - hubble ELK采集 客户端SDK grafana 服务端 InfluxDB Kafka Storm
- 18.应用监控 目标 JVM 吞吐量 (R) 内因 锁 异步队列 错误率 (E) 响应时间 (D) 外因 资源 宿主机 网络
- 19.应用监控 访问量 JVM profile 线程池 应用监控
- 20.应用监控 – 访问量趋势 系统整体运行情况 Ø 访问量 Ø 响应时间 Ø 错误数 Ø 响应时间区间分布
- 21.应用监控 – 资源profile数据 资源整体运行情况 Ø 访问量 Ø 响应时间 Ø 响应时间区间分布
- 22.应用监控 – JVM信息 JVM运行信息 Ø JVM内存分布情况 Ø GC频率和停顿时间
- 23.应用监控 – 线程池信息 线程池异常情况 Ø 任务堆积数 Ø 活跃线程数
- 24.全链路压测 – 目的 排查性能瓶颈 容量评估 预案演练
- 25.全链路压测 – 实现 压测环境 第三方依赖 线上服务 Mock服务 真实流量 压测流量 线上存储 影子存储
- 26.演讲大纲 Ø 社区现状和挑战 Ø 性能优化关注点 Ø 如何合理评估系统性能 Ø 美图秀秀社区性能优化实践
- 27.性能优化实践 首页时间 图片加载 时间 接口时间 DNS TCP 服务 响应 图片 加载
- 28.性能优化实践 – DNS优化 性能毛刺 DNS劫持 解析错误 流量跨网
- 29.性能优化实践 – DNS优化 FastDNS DNS解析 结果缓存 LocalDNS HttpDNS
- 30.性能优化实践 – DNS优化 Ø 平均耗时减少 50% Ø 最大耗时控制在 200ms 之内 Ø Http平均请求时间下降80-100ms 平均耗时对比 最大耗时对比
- 31.性能优化实践 – 图片加载优化 融合调度 图片预加载 图片大小优化
- 32.性能优化实践 – 融合调度(Chaos) 目标:提升容错率和使用体验 客户端 CDN1 CDN2 Chaos SDK CDN3 …… 请求播放地址 调度地址 服务端 播放地址 上报质量数据 Chaos系统 CDN CNAME MeiduDNS 配置系统 MeiduDNS 质量监控系统 CDN评分
- 33.性能优化实践 – 图片大小优化 评估不同编码器压缩性能,即在相同失真下,对比输 出图片大小,同时兼顾编解码速率 画质 图片大小 速率
- 34.性能优化实践 – 图片大小优化 图片大小 解码速度 Ø iOS平台,同等尺寸同等画质下, HEIF的软解码速度 HEIF硬解码速度 优于 WebP; 远远优于 WebP Ø android平台,同等尺寸同等画质 下,HEIF的软解码速度差于WebP;
- 35.性能优化实践 – 服务端优化
- 36.性能优化实践 – 服务端优化 Ø xxtop, xxstat Ø perf, systemtap Ø jmc, jstat, jmap 排查方法 Ø 业务日志,trace日志 Ø 系统日志 Ø GC日志 Ø 应用监控 Ø 基础设施监控 Ø 组件监控
- 37.性能优化实践 – 启动优化 10% • 重启时慢请求比例达到 • Memcached、Redis、HTTP等资源响应时间波动明显 • CPU使用率上涨一倍 • Safepoint频率剧增
- 38.性能优化实践 – 启动优化 • 在压测环境复现问题 • -XX:+PrintSafepointStatistics'>XX:+PrintSafepointStatistics