探秘手淘高可用平台(一)——度量指标及数据平台

系列文章根据手机淘宝客户端基础架构高级开发工程师非台在安卓绿色联盟开发者大会上的分享,共分三篇,介绍手淘技术团队性能和稳定性系统化提升方案EMAS-MOTU的设计原理以及实现思路。

本文重点介绍手淘高可用平台的定义及指标、自动化测试框架和性能稳定性数据平台。

非台

手机淘宝客户端基础架构高级开发工程师

主要负责手机淘宝性能和稳定性的提升

高可用的定义及度量指标

移动端高可用定义

移动端高可?旨在通过设计关键的度量指标,以期望能够客观反映和量化用户在使?过程的真实感受,同时通过指标,建?一系列的工具和平台,从线下到线上快速发现、分析、定位和解决包括稳定性、性能、功能等各类问题,以进一步提升用户体验的系统化解决方案。

高可用度量指标

高可用度量指标由性能和稳定性两大度量指标组成。性能度量指标有七个维度,分别是卡顿率、启动时长、页面秒开率、帧率、ANR率、流量、耗电;稳定性度量指标主要是Crash率,分为Java Crash率和Native Crash率。

自动化测试框架及性能稳定性数据平台

自动化测试框架

v.qq.com/x/page/e135…

以上为手机淘宝自动化测试演示视频。上半部分是测试同学的手势操作,下半部分是自动化脚本自动运行的效果。这套自动化测试框架的优点在于可以通过手势实时生成可执行的自动化脚本。将这套测试框架应用于暴力测试,通过不断重复回放同一个脚本去发现潜在的性能稳定性问题,包括内存泄漏、线程泄漏、资源泄漏等等。同时,手淘把常规的测试用例通过这套脚本去执行,可以很好地解决P0P1常规业务的回归。

性能稳定性数据平台

性能稳定性数据平台,由四个模块组成,用来展示各个维度的监控数据。

1.崩溃分析

主要是Java Crash和Native Crash分析,Java Crash包含了Crash当时调用栈,当前页面、用户历史访问页面、当前内存水位以及logcat信息,帮助开发同学快速分析Java崩溃的原因,从而快速解决问题。Native崩溃主要包含了崩溃的信号量、崩溃使用的调用栈、其他线程的调度栈、logcat信息以及已加载的so信息,通过这些信息,可以让开发同学快速地发现Native崩溃原因。

2.异常分析

各个性能维度的指标会在这里展示,主线程卡顿主要是哪条消息超过了阈值,它的调用栈是什么样子的。ANR展示的主要是/data/anr下的文件信息,发生ANR的现场是什么样子的。主线程IO这块展示的是主线程操作IO的一些调用栈以及它的耗时。内存泄露这块分两部分,Java泄露组件的名称,Native泄露的so名称,通过这两部分可以快速地定位内存泄露的原因。资源泄露这块主要展示开发同学调用资源open时的调用栈信息。

3.性能APM

启动性能监控了用户点击图标到真正进入页面可视可交互的时间。页面性能是从点击页面图表到下一个页面真正可视可交互的时间。系统监控启动所有阶段子任务的耗时,通过数据变化决策版本的发布是否符合质量标准。如果符合质量标准,可以发布;如果不符合,再进一步分析子任务耗时,具体是哪些任务导致不能正常发布。快速地定位分析,最终解决问题。手淘把数据能力开放给各个业务,通过他们个性化的需求自定义配置性能报表。

4.远程工具

远程工具主要是针对特殊用户的特殊案例。当线上用户向舆情平台反馈设备存在某一个性能问题时,通过这个工具,快速地从用户那里获取远程日志、Dump内存和每个方法的耗时,快速分析原因,从而给出解决方案。

在高可用的背后,手机淘宝技术团队是如何进行性能及稳定性治理?EMAS-MOTU在开发的各个流程如何为手淘提供高质量保障呢?我们将会在后面的文章中进行分享,敬请期待!

原文地址:https://www.cnblogs.com/androidga/p/10150585.html

时间: 2024-10-08 13:25:05

探秘手淘高可用平台(一)——度量指标及数据平台的相关文章

探秘手淘高可用平台(三)——热修复和开发流程

本系列文章根据手机淘宝客户端基础架构高级开发工程师非台在安卓绿色联盟开发者大会上的分享,共分三篇,介绍手淘技术团队性能和稳定性系统化提升方案EMAS-MOTU的设计原理以及实现思路. 本文重点介绍手淘高可用平台的热修复方案和如何全开发流程保障性能及稳定性. 热修复方案 热修复有三个场景,手淘EMAS-MOTU平台可以根据场景选择相应的方案进行热修复. 第一个场景是由于代码本身不够健壮,从而导致APP发生崩溃.针对这个问题,手淘开发了Dexpatch框架,可以实时快速对线上问题进行修复. 第二个场

搜狗高可用、高性能、可扩展商业平台设计

搜狗高可用.高性能.可扩展商业平台设计_infoQ地址:http://www.infoq.com/cn/presentations/availability-performance-scalable-business-platform-design 原文地址:http://www.infoq.com/cn/presentations/availability-performance-scalable-business-platform-design

RabbitMQ 高可用集群搭建及电商平台使用经验总结

面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ plugin 大型应用插件(Sharding.Rederation) Queue镜像失败手动同步 各集群配置同步方式(RabbitMQ export\import) 客户端连接方式(尽量采用AMQP组来动态链接) RabbitMQ 产线二次产品化封装(消息补偿.发送消息持久化.异常处理.监控页面.重复

利用先电云iaas平台搭建apache官方大数据平台(ambari2.7+hdp3.0)

一.ambari架构解析 二.基础环境配置 以两台节点为例来组件Hadoop分布式集群,这里采用的系统版本为Centos7 1511,如下表所示: 主机名 内存 硬盘 IP地址 角色 master 8192MB 100G 192.168.200.6 Ambari-Server Ambari-Agent slaver 8192MB 100G 192.168.200.7 Ambari-Agent 搭建所需各软件版本信息 ①ambari-2.7.1.0-centos7.tar.gz ②jdk-8u15

构建高并发高可用的电商平台架构实践

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包

构建高并发高可用的电商平台架构实践 转自网络

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处: 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回bo

【转】构建高并发高可用的电商平台架构实践

从各个角度总结了电商平台中的架构实践,由于时间仓促,定了个初稿,待补充完善,欢迎大家一起交流. 转载请声明出处:http://blog.csdn.net/yangbutao/article/details/12242441 作者:杨步涛 关注分布式架构.大数据.搜索.开源技术 QQ:306591368 技术Blog:http://blog.csdn.net/yangbutao 一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包

构建高并发高可用的电商平台架构实践(转)

目录(?)[-] 一 设计理念 空间换时间 多级缓存静态化 索引 并行与分布式计算 任务切分分而治之MR 多进程多线程并行执行MPP 多维度的可用 负载均衡容灾备份 读写分离 依赖关系 监控 伸缩 拆分 无状态 优化资源利用 系统容量有限 原子操作与并发控制 基于逻辑的不同采取不一样的策略 容错隔离 资源释放 二 静态架构蓝图 三 剖析架构 CDN 负载均衡反向代理 App接入 业务服务 基础服务中间件 通信组件 路由Router HA 消息Message CacheBuffer 搜索 日志收集

构建高并发高可用的电商平台架构实践(转)

一. 设计理念 1.      空间换时间 1)      多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag) 反向代理缓存 应用端的缓存(memcache) 内存数据库 Buffer.cache机制(数据库,中间件等) 2)      索引 哈希.B树.倒排.bitmap 哈希索引适合综合数组的寻址和链表的插入特性,可以