2017年-腾讯大数据_腾讯移动分析Crash系统实时化建设与实践_27页_1mb
报告摘要
腾讯移动分析Crash系统实时化建设与实践总结
行业现状与挑战
- 用户满意度与Crash率关系:用户满意度与Crash率呈非线性关系,基本型Crash(稳定、不闪退)是用户满意度的底线,优化此需求对满意度提升有限;而提供此需求是必须的,否则用户满意度会大幅下降。
- 行业平均Crash率:行业平均Crash率在3%以上,表明当前移动App质量仍有较大提升空间。
- Crash影响:用户在首次启动时遇到Crash的卸载比例较高,使用过程中Crash导致差评的比例也显著。
腾讯移动分析解决方案
腾讯移动分析Crash系统致力于解决以下问题:
- 数据采集完整性:确保在不同平台和CPU架构下,能够完整获取异常数据、堆栈、环境属性、运行参数等信息,为后续问题定位打下基础。
- 实时处理与展示:将异常数据实时化处理,第一时间展示给用户,帮助了解产品质量。
- 智能合并与检索:通过智能合并和多维检索,提升异常数据的分析效率。
- 实时计算与告警:构建秒级实时计算系统,实现对App质量的实时监控和告警。
- 云控系统:支持远程协助修复Crash问题,提供精准控制和灵活下发的解决方案。
终端全平台建设
腾讯移动分析Crash系统覆盖主流平台和语言,包括:
- 手游领域:Cocos2dx、C/C++、Lua、JS、Unity3d、C#
- 原生系统:Android(Java、C/C++)、iOS(Objective C、Swift)
系统从系统底层到应用层,覆盖通用领域和专业领域,确保全面的数据采集和分析能力。
实时系统建设
实时还原系统
- 预处理:流量控制、数据过滤、堆栈还原。
- 智能合并:特性提取与归类。
- 入库:批量入库,实时检索。
- ElasticSearch应用:支持按时间维度冷热数据分离,结构化数据和全文搜索,按前台访问LRU分级和按应用规模分库。
秒级实时计算系统
- 架构:由ESP(Event Streaming Processor)、ESA(Event Streaming Aggregator)、ESC(Event Streaming Coder)、Center(中心节点)组成。
- 特性:
- 增量计算模型:秒级处理小段时间的增量数据。
- 全整数运算:减少字符串处理开销。
- 全内存处理:支持文件持久化,确保端到端消息可靠传输。
- 智能容灾策略:包括本地文件备份、双机热备、一致性hash。
单机性能优化
海量并发连接优化
- C1机型性能:单个TCP长连接消耗约3KB,单机支持200W+ 并发连接。
- 优化策略:从硬件到驱动、系统、协议栈、架构逐层优化。
- 关键组件优化:
sock_inode_cache、eventpoll_epi、eventpoll_pwm、filp、dentry等系统资源的优化。- 通过调整系统配置项,如文件资源限制、进程句柄限制、Epoll监听数、TCP内存分配等,提升系统性能。
硬件性能挖掘
- SSE4.2检测:通过内联汇编检测CPU是否支持SSE4.2,提升CRC32计算性能。
- 性能对比:使用Intel SSE4.2 CRC32支持后,性能提升接近6倍。
- 性能评测:通过调优系统配置,显著减少关键函数的执行时间,提升整体处理效率。
实时监控与告警
- 周期轮询与On-Call机制:支持周期性定期全量查询和实时入库后检查。
- 告警机制:实时入库后检查适合实时告警,而周期性查询适合离线告警和日报。
- 监控数据示例:
- 异常信息:
java.lang.NullPointerException: Attempt to... - 用户信息:用户ID、设备机型、系统版本等。
- 运行时信息:使用时长、可用内存、可用存储空间等。
- 异常信息:
云控系统
- 功能:支持远程协助修复Crash问题,提供轻重分离、精准控制、灵活下发的解决方案。
- 系统模块:
- 运营平台:配置、灰度、版本管理、效果统计、报表分析。
- 使用示例:
- Android:
StatService.startStatService(); - iOS:
[MTA startWithAppkey:@"xxxx"]
- Android:
总结
腾讯移动分析Crash系统通过实时化建设,有效提升了Crash数据的采集、处理和分析效率,确保了App质量的实时监控和快速响应。系统覆盖多平台,支持海量并发连接和高性能计算,优化了终端和系统层面的性能,显著提升了用户体验和满意度。同时,云控系统的引入使得远程问题修复更加高效,整体方案具备高度可扩展性和灵活性,为移动App质量保障提供了坚实的技术支持。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载