正在阅读:英特尔,快手200亿日播量背后的技术支持英特尔,快手200亿日播量背后的技术支持

2019-09-30 18:52 出处:PConline原创 作者:张垞 责任编辑:zhangcha1

  快手,一家拥有数亿注册用户,日活超过2亿,每天短视频曝光量破千亿,播放量200亿的超级互联网公司。面对如此体量和业务需求,普通IT系统在性能和容量方面都无法满足需求。而想要解决这样一个前所未见的视频类需求,快手必须找到一个更高性能的方案。

  不同的业务,相同的解决方案

  仔细分析快手的核心业务,不难发现,困难存在于两方面:一是容量、二是性能。前者可以通过增大基础架构规模来满足,而后者则必须以现有软硬件为基础寻找新的解决思路。

  1、内容推荐系统

  千亿级别曝光量和200亿级别播放量对业务系统有两大压力,首先,快手后台需要根据事先生成的用户喜好标签,在上亿条视频中找到符合用户需求的内容向用户进行推送曝光;而这一视频库的容量也正在以每日1500万条的速度持续高速增长。

  庞大的短视频基数和海量的每日新增内容不仅要求快手的推荐系统具备相当程度的精准性,更要求这一系统能够以极高的速度将最新、最热门的内容纳入其中。庞大的计算量必须以毫秒为单位完成,否则将影响用户端的页面生成速度,进而影响用户体验。

  目前,能够在短时间内满足这样庞大计算量的只有内存计算。

  通过构建以KV存储为核心的海量内容数据库并将其加载到推荐系统的主内存中,快手能够通过内存超高的读写性能实时完成内容推荐所需的庞大数据计算,进而满足每日千亿级别的视频内容推荐需求。

  这套系统虽然有着极高的性能和快速的数据库更新能力,但缺点在于成本非常高昂。即便快手能够通过基于开源软件和自主算法来规避软件层面的商业授权费用,但系统运行所需的庞大内存容量仍旧是一笔非常可观的开支。

  为此,快手正在尝试使用英特尔傲腾持久内存来解决内容推荐系统对内存容量的庞大需求。

  作为一种全新的高性能非易失性存储,英特尔傲腾持久内存不仅能提供接近传统内存的读写延迟,其DIMM形态产品更可以用相对低廉的成本大幅提升系统内存容量。

  目前,在快手正在以最新的英特尔第二代至强可扩展处理器及傲腾内存构建全新的内容推荐系统服务器。在实际的配置中,服务器以单条128GB的傲腾内存条为基础,构建了总容量为512GB的系统主内存;同时,系统中还额外安装了128GB的传统内存作为主内存的高速缓存来使用。对于软件系统来说,512GB的傲腾内存就是可见的,而作为缓存的128GB传统内存是不可见的;这一模式被称为英特尔傲腾内存的Memory Mode。

  这种组合的优势在于可以很好的体现傲腾内存低延迟高容量特点,而传统内存则凭借更高的数据吞吐量来充当傲腾内存的高速缓存;进而实现性能与成本的再平衡。

  2、Redis数据库应用

  作为最近几年声名鹊起的明星级互联网应用形态,短视频的火热不仅在于其短小的内容形态适合最终用户碎片化的观看习惯,更因为其融合直播等功能,能够极大的增加用户粘性。

  在播放器端,弹幕已经是非常成熟的技术;但在播放器的后台,众多弹幕所对应的海量用户信息和数据却仍旧会对服务器造成很高的负载。而当这套弹幕后台系统遇到7亿+的用户数量、超过2亿日活和每日1500万新增视频内容及200亿级别的播放量,问题无疑更加棘手。

  海量弹幕及用户评论需要与短视频内容进行对应,这背后的用户信息和喜好标签也会随之发生变动;这种牵一发而动全身的效应会对整个数据库产生极高的读写需求。

  为此,快手选择了在排序和会话存储领域有很好性能表现的开源数据库Redis来完成对应的系统构建。而作为目前大热的KV型内存数据库,Redis不仅能够与快手现有的存储逻辑高度契合,其内存数据库的特性更能帮助快手满足弹幕服务背后的实时性需求。

  既然是内存数据库,服务器单机的内存容量便又成为了一道绕不过去的槛。有了前车之鉴,快手的选择很明确。

  在实际的服务器配置中,快手选择使用1TB容量傲腾产品作为系统主内存,再配置192GB传统内存充当缓存;由此便解决了Redis对内存的庞大需求。而在未来,快手还有更大的计划。

  在10万+台的庞大云化系统中,单台服务器的宕机几乎是不可避免的常见情况。而对于容量庞大的内存数据库而言,系统宕机之后除了必要的重启过程之外还需等待内存重新加载数据并恢复之前的状态。对于动辄TB级别的快手Redis数据库来说,以往,这一过程通常需要持续1-2小时。这是对硬件资源和系统效率的极大浪费。

  为了解决这一问题,快手目前正在英特尔软件工程团队的帮助下改进Redis数据库,使其能够在单机内同时识别和使用传统内存和傲腾内存——由APP自主控制,将需要高吞吐的数据放置在传统内存中,将规模更庞大的基础数据放在傲腾内存中。借由英特尔傲腾内存的持久化特性,一旦遭遇宕机,系统只需10-20分钟便可恢复至之前的运行状态。显然,这种应用模式虽然更复杂,但效率却更高。而这就是英特尔傲腾内存的高阶应用形态——App Direct Mode。

  傲腾持久化内存——英特尔的大计划

  关键业务的实时化是企业数字化转型过程中一项相当基础的需求。业务实时性对系统的需求不仅在于更强大的CPU处理能力,更在于将庞大数据加载至内存后获得的极高IO与极低延迟;而这种高IO和低延迟特性则是现今任何存储设备和介质都无法比拟的。

  但业务实时性所催生的内存计算却又有着两个致命的缺点——硬件成本和业务连续性。由于传统内存的断电易失性,系统往往需要在可靠性上花费大量精力来进行重新设计,而这又会对用户带来更高的成本,让本已因为内存容量极大扩充而快速上涨的硬件成本雪上加霜。

  英特尔傲腾内存技术是解决传统内存计算系统两大问题的全新选择。在提供接近传统内存延迟的前提下,10倍于传统内存的容量密度使得傲腾内存能够以更低的成本解决内存计算所带来的内存容量需求,而非易失性的特点则让硬件系统不必在可靠性和连续性方面再做过多考量。

  对于英特尔来说,傲腾内存的出现并不只是简单的在传统内存与存储之间加入一个性能适中过渡层,更意味着其能够配合新一代处理器满足越来越多用户对实时性业务的庞大需求。

  在用户看来,这是数字化转型;而在英特尔看来,这是自身向“以数据为中心”转型的重要产品基石。

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品