服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

导语 | 腾讯会议于2019年12月底上线,两个月内日活突破1000万,被广泛应用于疫情防控会议、远程办公、师生远程授课等场景,为疫情期间的复工复产提供了重要的远程沟通工具。上线100天内,腾讯会议快速迭代20个版本,满足不断增长的用户需求,多次登顶APP STROE中国区免费榜总榜No.1。

极速增长的会议需求,让腾讯会议服务质量分析系统经受着巨大的考验。为了向全网用户提供高效稳定的服务,以及对重要的大型会议进行保障护航。在充分讨论调研了大量方案后,腾讯会议服务质量分析团队与腾讯云Elasticsearch(下文简称“ES”)团队展开合作,积极探索云端服务质量数据分析引擎架构的更多可能。

一、数据极速增长,业务稳定面临挑战

伴随爆发增长的用户需求,腾讯会议的日活也在不断地刷新着历史记录。

从1月29日起,为了应对疫情下远程办公的需求,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。

在会议中,偶尔存在会议实时音视频卡顿、音视频不同步等会议质量问题,造成上述问题的可能因素比较多,当前运行的网络有丢包或连接不稳定的情况就是其中一种。

为了帮助运营团队快速精准地定位分析问题,需要大量运行时的会议质量数据支撑,如网络相关的入网类型、码率、丢包率、网络切换、ip切换等数据,以及客户端相关的CPU使用率、内存使用率、操作系统版本、产品版本等数据信息。

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

因会议是一个多用户参与交互的过程,定位问题不仅需要涉及到单个用户的情况,也要从房间的维度洞察各个用户之间的联系。通过腾讯会议客户端实时上报的会议质量信息,运营团队可以快速地对单用户、单房间的视频会议质量情况有直观的了解,为分析问题提供了数据支撑。

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

除了数据的实时上报,另一方面,借助多维分析,我们还可以在实时数据中挖掘出异常情况。如某个地区大面的卡顿,某个版本出现特定的问题等。通过dashboard或数据报表的形式,帮助运营团队及时掌控全局情况,快速发现潜在问题。

快速增长的用户数以及不断刷新纪录的同时在线房间数,让腾讯会议服务质量分析系统经受高压力,给运营团队及时排查用户问题带来了巨大的挑战。深究根本原因,是因为服务质量分析系统在如此高压力、高吞吐的场景下,写入性能严重不足导致。由于系统最关键的部分,是一个基于lucene自研的搜索引擎,扩容能力比较差,依赖于研发团队针对业务的优化。在数据量暴涨的背景下,不能进行快速扩容以满足需求。

二、选型ES及技术考量

为了保证全网腾讯会议用户都能高效稳定地进行会议沟通,保证运营团队能对用户会议中的卡顿等问题及时进行排查,以及对重要的大型会议进行保障护航。在充分讨论调研了大量方案后,腾讯会议服务质量分析团队决定从原来的自研服务质量数据分析系统,紧急迁移至使用腾讯云ES作为数据分析引擎的架构上。

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

新老架构对比图

在进行架构方案选型的过程中,主要从以下几个方面进行了考虑:

1. 高性能

腾讯会议服务质量数据上报至ES的流量,峰值高达1000+w/s。在如此高吞吐的极限写入场景下,能持续稳定地提供数据读写服务,确实是一个挑战。在腾讯内部,也存在着类似腾讯会议这样的大批量、大吞吐写入场景,在使用过程中,业务部门经常会发现写入性能不高,且CPU使用率不稳定的问题,资源利用率严重不足。

腾讯云ES内核团队对类似的高压力写入场景进行了追踪及分析,并在同样的场景下进行了多个方案的压力测试,发现ES单节点的压力写入测试与lucene基准的写压力测试有较大的差距。通过对调用火焰图进行分析并对比测试translog的一些调优参数,最终定位发现translog文件的rollGeneration操作与flush操作有互斥,两个操作互相频繁的加锁干扰,一次rollGeneration操作的平均耗时达到了570ms,在高压力写入场景下,频繁的rollGeneration会严重影响写入性能。

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

在与社区进行了大量的讨论及压测之后,最终确定了优化方案:采用rollGeneration的过程中,在关闭原translog文件之前,先执行一次flush,巧妙地避免了操作的互斥。这个方案对流程的改造最轻量优雅,且优化后的写入性能提高了20%以上。这部分优化的代码经腾讯内部的业务验证后,最终整理提交回馈给了社区。由于这个优化在ES写入的所有场景下均适用,且对性能的提升非常显著,Elastic的创始人对该PR高度赞扬,并给腾讯云总裁发来了公开感谢信。

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfppd.html