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

本文涉及的产品
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
简介: 倚天云服务器已于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开发者指南提供了丰富的分析工具,帮助用户解决不同的性能问题。以上就是我今天分享的全部内容,谢谢大家。


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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 缓存 监控
安谋科技(Arm China)马闯:Arm架构下性能分析与优化介绍
2023年9月19日,系列课程第九节《Arm®架构下性能分析与优化介绍》正式上线,由安谋科技 (Arm China)主任工程师马闯主讲,内容涵盖:Arm架构下性能监控单元 (PMU) 介绍、Arm统计性能分析扩展 (SPE) 介绍、Arm性能分析工具介绍、Arm架构下性能优化案例分享,本期节目在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台 & 微信视频号同步播出,同时可以点击【https://developer.aliyun.com/topic/ecs-yitian】进入【倚天实例迁移课程官网】了解更多内容。
|
网络协议 Linux 数据库
|
4月前
|
机器学习/深度学习
简述:Transformer机制的瓶颈及未来几种可能出现的机制迭代
下一代大模型将从“Transformer 的二维 attention 平面”,进化到“结构化驱动的多维任务空间”。也就是说:不是“改进 Transformer”,而是让 Transformer 成为一部分机制,预测将是“因果框架 + 动态路径 + 局部任务图谱 + 长期记忆”,“结构即智能”的范式会压倒“规模即智能”的思维。
123 1
|
5月前
|
Cloud Native 关系型数据库 分布式数据库
客户说|知乎基于阿里云PolarDB,实现最大数据库集群云原生升级
近日,知乎最大的风控业务数据库集群,基于阿里云瑶池数据库完成了云原生技术架构的升级。此次升级不仅显著提升了系统的高可用性和性能上限,还大幅降低了底层资源成本。
|
Oracle Java 关系型数据库
EMT4J——让 Java 应用升级更轻松
EMT4J 是什么?如何使用 EMT4J 工具进行 Java 应用升级?
EMT4J——让 Java 应用升级更轻松
|
SQL 弹性计算 分布式计算
阿里云李腾飞:基于ECS倚天实例的大数据加速最佳实践
2023年9月14日,系列课程第八节《基于ECS倚天实例的大数据加速最佳实践》正式播出,阿里云弹性计算大数据优化负责人李腾飞主讲,内容涵盖倚天大数据场景迁移适配、倚天大数据性能加速实践和倚天大数据场景落地实践。
阿里云李腾飞:基于ECS倚天实例的大数据加速最佳实践
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
基于「倚天710自研芯片+CIPU云原生基础设施处理器」组合的倚天ECS实例为解决算力挑战提供新思路。
|
存储 弹性计算 编解码
技术分享 | 云原生算力时代-倚天实例技术架构与最佳实践解析
阿里云倚天实例基于平头哥半导体自研倚天710云原生处理器,倚天710使用ARMv9架构,采用业界领先的工艺设计,单芯片容纳高达600亿晶体管,内含128核CPU核心,主频2.75GHz,能同时兼顾性能和功耗。同时得益于阿里云自研的CIPU处理器以及飞天云计算操作系统,倚天实例实现了芯片、计算架构及操作系统的协同优化,显著提升了算力性价比。目前阿里云倚天实例已经在视频编解码、科学计算、电商等领域得到了广泛的应用。
|
Cloud Native Oracle Java
李三红:Java30年,未来在哪里?
李三红:Java30年,未来在哪里?
688 0
|
弹性计算 Java 芯片
阿里云张伟分享 | 软件跨架构迁移(x86->ARM)的原理及实践
2023年8月31日,系列课程第四节《软件跨架构迁移(X86 -> ARM)的原理及实践》正式上线,由阿里云弹性计算架构师主讲,内容涵盖:ARM与x86架构的差异分析;软件跨架构迁移的原理;软件迁移策略制定、环境准备、执行、测试优化及持续部署与维护等;以及软件迁移的全流程解读。
阿里云张伟分享 | 软件跨架构迁移(x86->ARM)的原理及实践

热门文章

最新文章