余姚综合性门户网站

性能强劲,成本降低30%:华为云鲲鹏Redis最全技术解读

  2019年5月,华为云发布全球首个自研ARM的分布缓存鲲Re Redis,配备华为LibOS +华为编译器+安全容器引擎三种黑色技术,除了保证Redis的强劲性能外,还降低了客户30%的使用成本,真正实现了使用廉价的非昂贵的分销Cache Redis产品。

本文从技术角度解释了华为Yunpeng Redis如何通过数据中心基础设施,芯片,硬件,软件和其他全栈创新实现上述成果。

1.为什么ARM架构适合Redis?

众所周知,Redis是一款全球高性能,灵活,数据结构的键值内存数据库,具有毫秒级的响应延迟。因此,Redis需要极高的服务器内存和网络带宽延迟,也就是说,是否可以播放Redis的高性能取决于服务器内存和网络性能。

2019年3月,Redis的父亲Salvatore Sanfilippo(网名:antirez)表达了他对RedisARM架构发展趋势的看法。他说ARM被用作Redis运行架构,所有测试和验证都已通过,性能稳定性非常好。 Antirez列出了许多测试数据,得到了大多数用户的支持。

由于Redis采用单线程架构设计,所有IO和数据处理都在同一个线程中完成,因此单节点Redis一次只能使用一个CPU核心,单节点Redis的性能基本上是100,000 QPS。在规模之后,没有办法扩大规模。

在实际业务系统中,Redis的性能通常要求达到100万QPS或更高,甚至超过1000万。在此方案中,需要Redis群集来扩展Redis性能。集群性能的瓶颈已经成为Redis架构性能优化的关键因素。

1.RedisProxy集群架构性能关键点

作为业界流行的Redis集群,代理集群具有以下架构:

在此体系结构中,Redis群集由三种类型的节点组成:负载平衡器,RedisProxy和RedisServer。在此Redis群集体系结构中,Proxy节点和RedisServer都可以水平扩展,并且可以通过增加节点数来不断提高Redis群集的整体性能。根据业务需求,集群性能可以灵活扩展到100万到1000万QPS。正是因为可以增加节点数量来提高集群的整体性能。因此,虽然Redis单节点仅使用一个CPU内核,但CPU的最高频率限制了Redis单节点性能,但在集群水平扩展模式下,CPU主要频率限制不再太重要。

在整个集群体系结构中,服务系统发送的Redis请求需要由负载均衡器和RedisProxy转发两次才能由RedisServer处理。端到端链路性能是整个集群的最大性能瓶颈。测量结果还表明,对于Redis群集的端到端链路延迟每减少1毫秒,群集的整体性能可以提高10%+。

2.RedisCluster集群架构性能关键点

集群集群作为Redis的官方标准,逐渐成为客户集群的首选架构,实际上应用于在线业务。其架构如下:

与代理群集相比,群集群集减少了网络跃点,具有更高的性能和灵活性。与Proxy集群一样,这种架构打破了Redis集群对CPU单核性能的依赖性,端到端链路性能是整个集群的最大性能瓶颈。

从上面的架构分析中,我们可以理解Redis单核性能的关键在于CPU的处理能力,但Redis确实在CPU的纳秒级运行,不超过最终的10%。 - 延迟,因此Redis横向扩展核心通过链接性能进行优化。

二,华为云鹏鹏Redis:三项黑色技术帮助Redis表现

1.华为自主开发的LibOS构建高性能云服务基础架构,将Redis性能提升两倍

LibOS考虑了资源利用和隔离,同时满足公共云资源利用和多租户隔离的需求,已成为公共云运行时的重要发展方向。创新的LibOS技术将Redis的软件堆栈从10层压缩到4层,实现超低延迟。

1)SOCKET标准接口,从内核模式网络堆栈到用户模式的平滑切换。 2)轻量级协议栈,支持每个Redis实例具有单独的协议栈,以避免协议栈共享引起的锁竞争。 3)业务线程和用户状态协议栈是共线程的,并且具有零调度开销。 4)利用NIC的极端性能,避免延迟和调度,从而增加延迟。

2.华为编译器通过智能动态编译优化提高热代码性能15 +%

华为自主开发的编译器针对公共云业务应用场景的特点,通过智能动态编译优化将热门代码性能提高15 +%:

1)通过云服务环境中部署的轻量级性能特征收集代理,并在程序动态运行时保存关键性能特征信息;

2)通过智能编译和调优工具,以动态性能特征为输入,结合静态代码分析,产生更好的编译策略;

3)自行开发的ARM64编译器使用新的编译策略重新编译和生成优化的应用程序,并且热代码的性能得到显着提高。

3.华为iSula自主开发的安全容器引擎技术,系统资源少,实现二级实例分发和迁移

实现容器的二级启动和迁移。使用LibOS,可以实现虚拟机级别的安全隔离,确保租户只能使用可用的资源。

第三,强大的业绩支持客户业务成功

在电子商务客户中,客户拥有大量的业务数据,大量的读写请求,明显的峰值,频繁的扩展以及需求的快速变化。 Redis非常依赖并且具有很高的性能要求。当前网络同时维护200+。正在努力应对容量扩张,性能下降,无响应链接和持续故障的Redis实例为研发团队带来了巨大挑战。

为了应对业务增长带来的大数据并发性并解决系统瓶颈问题,客户决定对华为云鹏Redis进行检查。经过许多技术方案和PoC验证后,客户决定将所有自建的Redis实例迁移到Hongpeng Redis。主要好处是:

1)性能提升。华为基于云的单实例性能已基于全栈集成达到100,000 QPS。集群集群支持性能线性扩展到1000万级,足以满足2019年的业务增长目标。

2)价格上涨。在降低客户30%的使用成本后,Repeng Redis的资源利用率提高了20%,同时实现了与自建Redis相同的规格。以更少的钱享受更多容量。

3)技术效益。 Rep.Redis提供从硬件链接到软件优化的专业技术支持,以提供更好的系统级优化。

迁移成本很高,包括稳定性测试和切换保证,所有这些都需要人工输入。但是,客户CTO表示,华为云提供了良好的迁移保障,大大提高了迁移效率,减少了对现有网络服务的影响。与长期合作的好处相比,这种开销几乎可以忽略不计。

华为云鹏Redis是业界首款基于自主开发的基于ARM的全栈集成的Redis云服务,支持双系统热备份HA架构,提供独立,主用/备用,代理群集和集群集群实例类型高读/写性能。弹性适应的情景和业务需求。