阿里云李三红:倚天平台全栈应用性能优化与迁移最佳实践

简介: 倚天云服务器已于11月15日正式商业化

2022年11月5日,“倚天开启云原生算力新时代”专场在杭州·云栖大会D馆云栖科创SHOW场举行,阿里云程序语言与编译器技术总监李三红发表了《倚天平台全栈应用性能优化与迁移最佳实践》的主题分享,本篇内容根据该演讲整理而成,主要分为四个部分:

1.   倚天ECS应用生态全景

2.   全栈应用性能优化实践

3.   跨架构迁移

4.   重要发布

1-调整尺寸.jpg

图:阿里云程序语言与编译器技术总监 李三红


01 倚天ECS应用生态全景

2.PNG

目前,倚天ECS支持丰富的开源生态。在开发者工具方面,倚天ECS支持GCC、LLVM等编译器,以及Java(OpenJDK、GraalVM)、Python等语言;在OS/基础库方面,倚天ECS支持glibc、dpdk、jemalloc、OpenSSL等基础库、以及ubuntu等OS;在容器/虚拟化方面,支持安全容器、Kubernetes(K8S)、Docker、KVM等等。

3.PNG


如上图所示,从应用生态全景看倚天ECS的支持。在操作系统方面,倚天ECS支持OpenAnolis Anolis OS创新LTS版,以及其定制版Alibaba Cloud Linux;在虚拟化&容器方面,倚天ECS支持Dragonfly Hypervisor、ACK、以及阿里云沙箱容器袋鼠;在工具链和语言方面,倚天ECS支持Alibaba Cloud Compiler(LLVM based)、Alibaba Dragonwell、Noslate Anode、APython;在中间件和工作负载方面,倚天ECS支持MySQL、Flink、TensorFlow、Spark等等。

4.PNG


使用倚天ECS,大家比较关心的问题有两个。第一,应用如何平滑迁移倚天ECS?OS、编译器、基础库,开源组件是否能提供更好的适配?是否有工具支持迁移?迁移之后,是否有优秀的云原生管理软件?多架构的软件版本又如何管理?


第二,倚天ECS上,应用可以获得多大的收益?应用能跑多快?


倚天ECS通过软件栈基础组件优化,二/三方库优化,以及通用负载优化,最终实现全栈性能优化。通过相关工具,以及最佳实践,也支持客户场景应用调优。


02 全栈应用性能优化实践

5.PNG

如上图所示,全栈应用优化主要包括倚天ECS、操作系统、编译器/运行时、以及应用。实现全栈优化方法主要有两种,即Outside in approach和Layered approach。


其中,Outside in approach是阿里云基于真实的Workload建立基线,然后基于基线进行迭代优化。


在分层优化方面,阿里云的操作系统团队、编译器团队、中间件团队,以及PaaS团队等,围绕倚天710芯片进行各自的分层优化。举个例子: 我们结合倚天架构的特点,对特定的操作系统和编译器版本进行的协同优化。


目前,阿里云推荐的基础软件版本有Alibaba Cloud Linux(3)、Alibaba Cloud Compiler(13)、Alibaba Dragonwell(11)。应用工具支持包括KeenTune、EMT4J、Jifa、Perf(x)。

6.PNG


围绕倚天ECS,Alibaba Cloud Linux有四个特点。

第一,Alibaba Cloud Linux首次完成全面支持倚天710,实现开箱即用、工单支持、十年维护。

第二,Alibaba Cloud Linux历经阿里双11场景历练,有效支撑阿里云数据库,容器服务等云产品。

第三,Alibaba Cloud Linux作为基座,我们从硬件,内核,编译器,运行时,做了全栈应用优化,大幅提升性能。

第四,Alibaba Cloud Linux逐步向龙蜥社区,以及上游社区开源。

7.PNG


接下来,讲一讲C/C++编译器套件Alibaba Cloud Compiler。Alibaba Cloud Compiler面向倚天710芯片,进行了全面优化。能够更好地支持SVE指令;团队基于倚天710芯片进行微架构调优;倚天710芯片上最新C++20特性支持:Coroutine,Modules等等。


除此之外,Alibaba Cloud Compiler面向阿里云产品,服务云上客户。一套编译器,同时支持X64,AArch64两种架构;支持更快的构建、编译速度,相比GCC 提升15%至40%构建加速;更多易用的编译优化,相比GCC取得5%至15%的性能提升。

8.PNG


Alibaba Dragonwell的中文名是“龙井”,于2019年开源。如上图所示,在倚天芯片上, Alibaba Dragonwell在不同版本间进行迭代优化,11.0.11.6相比11.0.8.3SEPCjbb2015吞吐量提升了58%。在多核情况下的性能,更好地保证扩展性。

9.PNG


接下来,讲一讲一键式调优工具KeenTune。KeenTune可以将云上不同的业务场景和VM规格,进行更好的组合,形成最佳的性能调优;profilesKeenTune可以一键式全栈调优内核参数、应用配置等。

10.PNG


如上图所示,倚天ECS基础软件进行了大量优化,主要有四个方向,即Workload Profiling Driven优化、架构差异优化、编译优化、以及并发优化。

◾ Workload Profiling Driven方面,我们根据负载特点,针对性地使用代码大页、XPS、内核调度、ext4 fast commit等技术进行优化。

◾ 架构差异方面,主要有TLBi、新指令集、Code Cache、寄存器等方面的优化。其中,在新指令集方面,并发多线程是现代化通用负载的典型特征。LSE指令在多核情况下,能够有效提升通用负载的性能。

◾ 编译优化方面,使用了FDO/PGO、LTO等这些传统的编译器优化技术。

◾ 并发优化方面,阿里云在JAVA虚拟机领域,做了大量的Weak Memory优化,也做了CAS、Lock等多线程优化。

11.PNG


如上图所示,倚天ECS在数据库,Big Data,Web多项场景达到了20%以上的性能提升。在C++的RDS-MySQL场景,性能提升了33%;在Java的Fink场景,性能提升了30%;在Web-tooling/Node.js场景,性能提升了43%;在PHP的WordPress场景,性能提升了20%


03 跨架构迁移

12.PNG


接下来,讲一讲跨架构迁移方案的全软件生命周期支持。目前,阿里云跨架构迁移方案覆盖了源码、构建、测试、生产上线的全流程的跨架构支持


用户在source code阶段,可以用工具去检查架构上的兼容性、健康性问题。在构建阶段,我们可以帮助用户跨架构编译,支持优化的基础库、开源库、框架的集成。在测试阶段,阿里云沉淀了大量的实践案例,可以帮助用户进行Build Sanity检查,以及软件版本依赖检查。在生产阶段,支持用户进行生产参数检查、软件版本检查,以及线上问题排查的工具支持。

13.PNG


上图是ACK面向多CPU架构的管理图。一个ACK集群同时管理x86节点池和Arm节点池。阿里云镜像仓库ACR全面支持多架构镜像


在ACK云原生环境里,它会根据CPU架构的不同,自动管理和拉取匹配当前CPU架构的镜像。除此之外,用户业务可以在x86和Arm架构间平滑迁移和配置流量。

14.PNG


我们总结一下:倚天ECS支持丰富的软件、工具,并提供了丰富的文档。用户可以根据自己的需求选择不同的ECS实例,OS实例、工具链、容器。我们通过工具/解决方案支持应用迁移、以及问题排查等方案。


目前,第八代ECS云服务器ARM实例g8y开放邀测。相关网址如下:

https://www.aliyun.com/daily-act/ecs/ecs_yitian


04 重要发布

15.PNG


接下来,介绍全新的源代码扫描工具Cross Platform Migration Scanner;开箱即用的倚天ECS智能优化方案;以及面向开发者社区的倚天ECS开发指南。

16.PNG


Cross Platform Migration Scanner支持多语言,以及跨架构兼容性检查。它可以在源代码阶段,扫描代码,发现兼容性问题。

17.PNG


上图展示了ECS Booster倚天智能优化方案架构,ECS倚天根据不同场景,Web,数据库,缓存,视频,AI等不同场景,自动调配优化参数,支持开箱即用。

18.PNG


11月15号倚天ECS商业版即将正式上线,倚天ECS开发者指南也会在Github开源发布(开源地址:https://github.com/aliyun/yitian-ecs-getting-started)。


在新手指南上,会通过镜像的方式发布容器化的优化结果。通过文档的方式帮助大家完成不同架构的迁移。除此之外,倚天ECS开发者指南提供了丰富的分析工具,帮助用户解决不同的性能问题。以上就是我今天分享的全部内容,谢谢大家。


点击这里,查看嘉宾的精彩演讲视频。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 算法 调度
云计算环境下的性能优化实践
云计算环境下的性能优化实践
|
1月前
|
监控 Cloud Native 测试技术
云原生架构下的性能优化与实践####
【10月更文挑战第21天】 本文深入探讨了在云原生环境下,如何通过一系列技术手段和最佳实践来提升应用性能。文章首先概述了云原生架构的基本原则与优势,随后详细分析了影响性能的关键因素,包括容器编排、微服务设计、持续集成/持续部署(CI/CD)流程以及监控与日志管理。针对这些因素,文中不仅介绍了具体的优化策略,如资源请求与限制的合理配置、服务间通信的高效实现、自动化测试与部署的优化,还结合案例分析,展示了如何在实际项目中有效实施这些策略以显著提升系统响应速度和处理能力。此外,文章还强调了性能测试的重要性,并提供了几种常用的性能测试工具和方法。最后,总结了云原生性能优化的未来趋势,为开发者和架构师
42 2
|
7月前
|
监控 Cloud Native 数据库
【阿里云云原生专栏】性能优化之道:阿里云云原生平台上的监控与调优策略
【5月更文挑战第22天】本文介绍了阿里云云原生平台的监控与调优策略。阿里云提供如CloudMonitor、ARMS和ACK监控等工具,用于基础和应用监控,以及容器监控。调优策略包括资源、代码和架构优化,例如根据监控数据调整资源配置,优化代码性能,和利用微服务、容器化和无服务器化改进架构。示例代码展示了如何进行监控和调优操作,强调实时监控与针对性调优对提升云原生应用性能的重要性。
378 1
|
1月前
|
缓存 资源调度 Cloud Native
云原生架构下的性能优化实践与策略####
【10月更文挑战第26天】 本文深入探讨了云原生环境下性能优化的核心原则与实战技巧,旨在为开发者和企业提供一套系统性的方法,以应对日益复杂的微服务架构挑战。通过剖析真实案例,揭示在动态扩展、资源管理、以及服务间通信等方面的常见瓶颈,并提出针对性的优化策略,助力企业在云端环境中实现更高效、更稳定的应用部署。 ####
45 0
|
7月前
|
Java Linux Docker
倚天使用|YODA倚天应用迁移神器,让跨架构应用迁移变得简单高效
YODA(Yitian Optimal Development Assistant,倚天应用迁移工具)旨在帮助用户更加高效、便捷地实现跨平台、跨结构下的应用迁移,大幅度缩短客户在新平台上端到端性能验证所需的人力和时间,使得客户更加专注于应用本身算法的优化,协同客户实现降本增效。
124820 92
|
JSON 算法 前端开发
YODA倚天应用迁移神器,让跨架构应用迁移变得简单高效
YODA(Yitian Optimal Development Assistant,倚天应用迁移工具)旨在帮助用户更加高效、便捷地实现跨平台、跨结构下的应用迁移,大幅度缩短客户在新平台上端到端性能验证所需的人力和时间,使得客户更加专注于应用本身算法的优化,协同客户实现降本增效。
|
存储 人工智能 运维
带你读《云原生架构白皮书2022新版》——作业帮原生降本增效实践之路(下)
带你读《云原生架构白皮书2022新版》——作业帮原生降本增效实践之路(下)
153 7
|
弹性计算 Kubernetes Cloud Native
带你读《云原生架构白皮书2022新版》——作业帮原生降本增效实践之路(上)
带你读《云原生架构白皮书2022新版》——作业帮原生降本增效实践之路(上)
119 1
|
缓存 监控 Cloud Native
带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(2)
带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(2)
108 0
|
监控 Cloud Native 大数据
带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(7)
带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(7)
112 0