tutorabc iTutorGroup 杨大鹏 - 见微知著, APM在tutorabc的应用
2020-02-27 58浏览
- 1.见微知著, APM在tutorabc的应用 杨大鹏 iTutorGroup集团云平台(TGOP)负责人 2017-08-11
- 2.iTutorGroup集团, 让学习成为一种享受 tutorabc由美国硅谷技术团队研发创 立, 全球首个在线教育“独角兽”公司。 阿里巴巴集团、新加坡淡马锡基金、启 明创投和日本软银SBI集团一亿美元B轮 融资。 GIC、中俄基金、高盛、银翎资本等世 界级投资方近两亿美元C轮融资。 vipjr是由姚明代言的青少儿在线教 育品牌,为5-18岁青少儿提供包括 英语、数学、托福雅思等多元化教 学服务。 2017年4月,vipjr联合哈佛大学、宾 夕法尼亚大学等最高学府的顶尖思 想领袖,成立美国学术顾问委员会。
- 3.大纲 Ø 如何应对性能问题 Ø tutorabc对APM的一些实践 Ø TGOP私有云平台
- 4.关注性能, 从现在开始!
- 5.一个真实的调优案例 线上某API服务高峰时段CPU用量超过95%. 期间API响应变慢. 重启服务后, 问题依旧存在. 之前通过添加新服务器缓解问题. 考虑到近期业务量有大幅增长, 同时为节 约计算资源, 需要对服务进行优化.PS:本地环境可以重现该问题. 如何优化?
- 6.选择工具
- 7.Windows平台下对应的工具 程序日志 程序日志 JProfiler(Java), top, netstat等 VS Profiler, Perfmon, Sysinternals Suite等 gdb, Perf {PMU, TracePoint} WinDbg, Perfview {ETW}
- 8.问题分析: 本地测试得到的性能参数
- 9.问题分析: PerfView采集ETW数据
- 10.问题分析: XPerf查看CPU时间分布
- 11.如果是Perf…https://github.com/brendangregg/FlameGraph
- 12.问题分析: 定位问题代码
- 13.解决方案
- 14.验证方案
- 15.性能调优的挑战与应对 挑战 • 重现概率低, 依赖环境. • 日志分析, 耗时耗力. • 问题复杂, 牵涉知识点众多. • 解决方案需要进行验证. 重现 验证 应对 • 监控覆盖足够的广度和深度. • 日志具备多个维度的关联性. • 合适的工具, 如Perf, Perfview等. • 人的经验与技术积累. • 找出重现步骤, 对比测试, 有针对性 的进行监控.
- 16.新的问题 应用程序 开发框架 & 运行时 操作系统 网络 硬件 用户
- 17.我们需要掌控全局… 宏观 微观 用户 /业务 微服务/系统 应用程序实例 基础设施/网络/硬件 追 踪日 志监 控
- 18.在tutorabc, 我们在实践自己的APM 业务挑战 – 遍及全球135个国家和地区的客户 群. – 遍布全球80多个国家, 100多座城 市的超过15,000名外籍顾问. – 每年提供超过1000万堂在线课程. – 为高质量客户群体提供高质量服务. 技术挑战 – 技术转型, 业务解耦. – 多语言开发, 多平台部署. – 遗留系统众多, 依赖关系复杂. 目标: 全系统APM驱动
- 19.APM系统构成
- 20.反馈机制 业务系统 监控/日志/追踪 Kafka streaming Event Engine 监控墙 通知 Reactor Reactor 报警 运维 人员 配置管理 & 自动化运维 & 虚拟化 & 资源池
- 21.请求追踪 数据整合 展示与追踪 链关联的日志, 监 控和报警数据, 以 便于问题排查. 系统全景 实时展示各 个服务节点的状 态, 以及相互依赖 关系. 动态采样 根据宿主机 (以及调用链上游 服务器)的负载调 整采样率.
- 22.监控墙
- 23.ChatOps
- 24.一些建议 Ø 监控, 日志和追踪数据要具备关联性, 便于后续分析. Ø 尽早建立CMDB, 方便对被监控的服务器和服务做分类, 打标签. Ø 重SDK, 去中心化. Ø InfluxDB适合存储以数字为主的记录, 文本较多的记录存入ES. Ø InfluxDB需要设置Series上限, 防止服务器内存耗尽.
- 25.一些建议(续) Ø Grafana报警功能使用单独的实例来运行. Ø Grafana数据库Annotation表需要定期清理, 当数据量累积到30万以上时, 会严重影响页面性能. Ø 追踪系统无法跨越消息队列, 可以在发送消息前将TraceID/SpanID信息植入 消息内. Ø 追踪系统SDK一般支持跨线程追踪, 但是对Timer线程需要清除追踪上下文. Ø 追踪系统基于采样率模式, 所以无法指定追踪特定事件(比如登陆失败), 需要 调研基于事件的追踪模式.
- 26.关于APM系统的一些数字 服务实例 1000+ 数据中心 3 监控指标 100+ 每秒查询 50+ 每秒写入(单节点) 10,000+ 日志 500+GB/天 服务器 600+
- 27.iTutorGroup Open Platform 开发框架 VipCoder ServiceNode SDK(Java, .NET) 租户管理 服务治理 服务注册 服务发现 健康检查 状态同步 监控 平台管理 路由管理 中间件 文件存储 缓存系统 消息队列 任务调度 APM 日志 Portal 平台入口 平台运维 资源管理 核心系统 配置管理 消息服务 发布系统 其他 追踪
- 28.TGOP Portal
- 29.展望 Ø 改进追踪系统UI, 增强与日志和监控(报警)系统的集成体验. Ø 基于追踪系统, 实现分业务场景监控. Ø 基于大数据进行未来24小时流量预测, 做到主动预警而非被动告警. Ø 应用画像, 以利精准部署. Ø 资源池化, 提高利用率.
- 30.总结 未有监控, 不谈优化. 合适即可, 演化迭代. 工具重要, 人更重要. 少即是多, 见微知著.
- 31.个人介绍 杨大鹏 原微软工程师, 2015年加入tutorabc, 带队负责TGOP平台设计, 实现, 运维与推广. 熟悉CLR/JVM虚拟机, 擅长Windows/Linux平台下应用性能调优.