更快地开发和部署高性能云工作负载
如果要创建一个电子商务网站,DevOps 团队通常会先从 GitHub 上下载开源代码。例如,他们可能会下载 NGINX 的开源代码。NGINX 是一种用于高流量网站的主流 Web Server1。由此,团队可以优化软件的性能并将其打包以进行部署。
然而,对于使用基于英特尔® 硬件云实例的开发人员而言,还有一种替代方案。这种方法基于经英特尔® 优化的云堆栈,可以显著缩短实现价值的时间。
为了打造优化的云堆栈,英特尔以 GitHub 上开发人员可获取的相同开源软件为起点,随后开展了特定于应用的一系列软件优化。这些优化提高了性能,并针对特定云实例上的英特尔® 硬件进行了调优。
优化利用了英特尔面向密码操作、人工智能 (AI) 和其他 CPU 密集型工作负载的先进加速功能。英特尔又与 Bitnami 等合作伙伴共同构建、编译并打包了这些软件。使用经英特尔® 优化的云堆栈作为 NGINX、WordPress 和 MySQL 等工作负载的起点,可以为开发人员节省大量时间,并显著提升性能。
图 1 展示了面向 MySQL 的经英特尔® 优化的云堆栈,这是一种开源的关系型数据库管理系统 (RDBMS)。英特尔从标准的开源映像入手,通过软件优化对其进行增强,同时包括对安全性的提升。软件还会再针对目标公有云上基于英特尔® 的实例进行调优。用户可以根据他们的用例(如静态或动态 Web 托管、电子商务、社交媒体、银行应用等)选择单节点或多节点版本。
本白皮书向软件架构师和开发人员介绍了使用经英特尔® 优化的云堆栈的优势,包括:
- 经英特尔® 优化的云堆栈与云市场上其他打包的开源软件有何不同
- 有关英特尔组件的软件配置和优化的详细信息,例如异步 OpenSSL 和基于英特尔® QuickAssist 技术(英特尔® QAT)的加速引擎
- 经英特尔® 优化的云堆栈在真实场景下的性能优势数据
- 有关性能基准测试的提示
DevOps 团队使用经英特尔® 优化的云堆栈启动项目可以节省时间并提高性能。
经英特尔® 优化的云堆栈有何独特之处?
经英特尔® 优化的云堆栈在以下几个方面与其他开源软件包有所不同。首先,英特尔使用独特的软件组件,并对这些组件进行了调优,使其能够利用英特尔平台上先进的指令集功能。英特尔还优化了组件,以便利用公有云实例的功能。通过升级和调优组件,与使用 GitHub 上提供的标准包相比,英特尔使企业和机构能够在更短的时间内部署性能更高的应用。
经英特尔® 优化的云堆栈是如何分发的?
英特尔通过以下两种方式分发经英特尔® 优化的云堆栈。一是通过公有云服务提供商的在线市场。例如,Bitnami 面向英特尔的 NGINX 开源软件包可通过以下在线市场获得:Microsoft Azure Marketplace、Google Cloud Platform (GCP) Marketplace 和 Amazon Web Service (AWS) Marketplace。Bitnami 面向英特尔的 WordPress 同样可在以下在线市场获得:Azure Marketplace、GCP Marketplace 和 AWS Marketplace。英特尔还通过 Accenture 和 Wipro 等全球系统集成商 (GSI) 分发这些堆栈。GSI 合作伙伴会在与客户合作的过程中将这些堆栈提供给客户。
表 1 和表 2 显示了英特尔® 堆栈中包含的优化组件。表 1 展示了面向 WordPress 的经英特尔® 优化的云堆栈,而表 2 展示了面向 NGINX 的经英特尔® 优化的云堆栈。
为了加快网站的响应速度,英特尔在 WordPress 和 NGINX 映像中均使用了异步 NGINX 而非标准 NGINX。同样,为了在提供高性能的同时确保网络通信安全,英特尔采用了异步模式下的 OpenSSL,而非标准 OpenSSL。
NGINX 和 WordPress 产品都集成了英特尔® 多缓冲区加密库,可以加速 IP 安全 (IPsec) 的数据包处理。IPsec 是一个相关协议的框架,有助于保护数据包处理层面的通信安全。这些堆栈还集成了英特尔® QAT 引擎,可将数据分流到针对这些功能进行过优化的硬件上,从而加速和压缩密码操作工作负载。这两个组件都有助于提高 NGINX 引擎的性能,使数据中心服务器能够有效地响应高流量水平。
表 1. 面向 WordPress 的经英特尔® 优化的云堆栈
组件 |
面向第三代英特尔® 至强® 可扩展处理器优化的 Bitnami 映像 |
---|---|
操作系统 (OS) 分发版本 |
Debian 10(取决于所选的虚拟机 [VM]) |
Siege |
v2.78 |
MySQL server |
MySQL v15.1,分发版本 10.3.29-MariaDB |
WordPress 版本 |
5.8 |
Zend 引擎 |
采用 Zend OPcache v7.4.19 的 Zend 引擎 v3.4.0 |
PHP 版本 |
PHP 7.4.19(命令行接口 [CLI])(2021 年 5 月 7 日 11:03:55 构建)(NTS) |
基础 NGINX 版本 |
NGINX/1.18.0 |
OpenSSL 版本 |
1.1.1d |
英特尔® QAT 引擎 |
v0.6.5 |
异步 NGINX |
v0.4.5 |
面向 IPsec 库的英特尔® 多缓冲区 加密库 (Cryptomb) |
|
IPsec MB |
v1.0 |
表 2. 面向 NGINX 的经英特尔® 优化的云堆栈
组件 |
面向第三代英特尔® 至强® 可扩展处理器优化的 Bitnami 映像 |
---|---|
操作系统 (OS) 分发版本 |
Debian 10(取决于所选的虚拟机 [VM]) |
基础 NGINX 版本 |
NGINX/1.18.0 |
OpenSSL 版本 |
1.1.1d(包含在操作系统中) |
英特尔® QAT 引擎 |
v0.6.5 |
异步 NGINX |
v0.4.5 |
面向 IPsec 库的英特尔® 多缓冲区 加密库 (Cryptomb) |
|
IPsec MB |
v1.0 |
经英特尔® 优化的云堆栈的不同之处就在于,英特尔会以特定的方式规划和配置其中的组件。选择这些组件是为了可以利用英特尔面向特定云实例的先进硬件加速功能。
英特尔还负责管理应用软件构建、编译和打包的繁重工作。这使得 DevOps 团队可以通过公有云站点轻松启用经英特尔® 优化的云堆栈。这一点与需要经历多个内存和 CPU 周期来准备软件包的方式形成了鲜明对比。
英特尔具有针对性的优化
经英特尔® 优化的云堆栈包括面向英特尔® 技术的软件优化和性能验证包。面向英特尔® 技术的优化示例包括:
• 面向缓冲和缓存的动态调整参数
• 内存表
• InnoDB 引擎优化
• 内核参数优化
• 通过配置文件实现的经验证的性能优化
借助经英特尔® 优化的云堆栈,企业和机构可以从基于英特尔的实例中获得更好的性能。性能验证包也使故障排除变得更加容易。
经优化的软件组件
以下部分深入探讨了经英特尔® 优化的云堆栈中包含的一些优化软件,以及这些组件如何帮助性能提升。
▪ 异步 OpenSSL
OpenSSL 项目提供了安全套接字层 (SSL)/传输层安全 3 (TLS3) 协议的开源实施,这些协议用于验证和加密计算机之间的网络连接。SSL/TLS3 对电子邮件和社交媒体等应用发送的个人信息进行加密。由于数据中心内的流量不断增加,性能变得至关重要。异步 OpenSSL 在这个项目中做出了重要贡献,因为它提高了性能。
异步 OpenSSL 是一种非阻塞方法,支持 SSL/TLS 协议在加密级别上的并行处理模式。这反过来又支持了其他类型的优化。异步 OpenSSL 带来了两大优势:一是增加了单流吞吐量,从而提高了性能;二是减少了上下文,从而降低了上下文管理的开销。通过在经英特尔® 优化的云堆栈中采用异步 OpenSSL,开发人员应用便可获得更出色的 Server 性能。
▪ 面向 OpenSSL 的英特尔® QuickAssist 技术(英特尔® QAT)加速引擎
英特尔® QAT 引擎可进一步提高 OpenSSL 性能。部分基于英特尔® 架构的平台支持该技术。英特尔® QAT 经过扩展,通过英特尔® 高级矢量扩展 512 系列(英特尔® AVX-512)中的指令,可提供基于软件的密码操作加速2。同样,通过在经英特尔® 优化的云堆栈中集成英特尔® QAT,应用可以从增强的 Server 性能中获益。现在,本地用户可以部署面向 OpenSSL 的英特尔® QAT 引擎;随着云服务提供商 (CSP) 推出集成该技术的实例,它也可以在云中提供价值。
▪ NGINX 的异步模式
开源 NGINX 是一种轻量级的高性能 Server,可以为大量连接提供内容服务。由于其异步架构和处理重负载的出色能力,往往被用于高需求网站。
英特尔对 NGINX 进行了扩展,使其能够与异步模式 OpenSSL 一同使用。英特尔还集成了英特尔® QAT 加速技术。使用异步 OpenSSL 运行 NGINX 有助于提高 Server 性能。
▪ 面向 IPsec 库的英特尔® 多缓冲区加密库 (Cryptomb)
经英特尔® 优化的云堆栈使用面向 IPsec 库的英特尔® 多缓冲区加密库指令,为 IPsec 和 TLS 等数据包处理框架提供密码操作加速。英特尔还提供算法和软件增强功能,支持操作链、先进的密码操作管道、多缓冲和函数拼接创新3。通过在经英特尔® 优化的云堆栈中集成面向 IPsec 库的英特尔® 多缓冲区加密库,可以进一步提高性能。
▪ Web Server 性能
您可以使用 TLS 1.2 版本的 Web Server 基准测试,比较使用与不使用采用 IFMA 密码指令的英特尔® QAT 引擎的密码操作性能。英特尔的测试展示了使用英特尔® QAT 引擎的优势。如图 3 所示,当使用英特尔® QAT 引擎时,NGINX TLS Web Server 的密码操作速度提高了 7 倍4。
NGINX TLS 1.2 Web Server 性能 归一化每秒连接数(越高越好)
图 2. TLS 1.2 Web Server 密码操作加速结果
▪ AI 分析
英特尔也在 Web 服务以外的用例中为英特尔® 硬件打造了特定于应用的软件优化。例如,英特尔® oneAPI AI 分析工具包 (AI Kit) 使用优化来加速 Python 生态系统中的端到端 AI 分析工作流程。
英特尔采用了 AI 分析工具包中的两个优化软件组件,并训练了一个基于教育预测收入的模型5。英特尔® 分发版 Modin 在其中用于数据提取、转换和加载 (ETL),而英特尔® Scikit-learn 扩展则用于模型训练和预测。
如图 3 所示,优化的软件组件将数据提取、转换和加载的性能提高了 38 倍;此外,与使用库存库相比,机器学习 (ML) 预测和脊回归拟合性能提高了 21 倍6。
端对端人口普查数据集: 使用优化库后性能显著提升
图 3. 人口普查数据集基准测试结果
有关性能基准测试的提示
值得注意的是,在评估性能时,基准测试可能具有欺骗性。一些公司可能声称公有云上某些特定工作负载在他们的处理器上的运行性能要高于英特尔® 处理器。但这些声明往往是精心修饰过的,这些工作负载可能在实际生产环境中很少会遇到。这些“人造”的基准测试在现实世界并没有太多参考意义。这些公司还可能将完全优化的 ARM 二进制文件与未优化的 x86 映像进行比较。请考虑真实场景中的性能结果,而不是依赖“人造”的基准测试结果。
自上而下的微架构相似性分析能提供更接近真实场景的测试和验证。在图 4 中,生产型工作负载聚集在左下方,说明前端和后端均会对执行产生约束,导致其对微架构和内存时延的敏感性更高。
图 4 是基于 CPU 性能监测数据的工作负载相似性分析。如图所示,将各种真实场景的工作负载代理与基准测试进行比较时,两者在性能数据上存在巨大差异。标准性能评估机构 (SPEC) 基准测试将各组件合并成微基准测试,但这无法体现出前端对实际应用的约束。即使是非 SPEC 基准测试也必须进行调整,以反映实际工作负载的代理。SPEC 基准测试和类似的微基准测试主要使用受时钟速度和/或内核数控制的与 CPU 相关的指标。因此,SPEC 基准测试往往仅适用于测量单纯取决于内核的频率相关指标。但是还有其他因素在实际使用中更有意义,例如缓存和内存时延、非统一内存访问 (NUMA) 和输入/输出 (I/O) 等。如图 4 所示,基于代理的方法更适合用于衡量经英特尔® 优化的云堆栈的优势。
在更短的时间内获得更高的性能
经英特尔® 优化的云堆栈旨在帮助开发人员和架构师充分利用云平台。它们可以帮助开发人员和架构师节省开发和部署时间。集成的软件优化和调优使工作负载能够利用先进的英特尔® 技术和公有云功能。因此,企业和机构各种各样的性能要求都可以得到满足。
了解更多关于如何充分利用云平台的信息
了解更多关于英特尔面向云优化和管理工具的信息:
https://www.intel.cn/content/www/cn/zh/cloud-computing/cloud-tools.html
在公有云在线市场上获得面向 NGINX 和 WordPress 的优化云堆栈:
Bitnami 面向英特尔的 NGINX 开源软件包:
• AWS Marketplace:https://aws.amazon.com/marketplace/pp/prodview-2ie7l4gcbcclu
• Azure Marketplace:https://azuremarketplace.microsoft.com/zh-CN/marketplace/apps/bitnami.nginx-intel
• GCP Marketplace:https://console.cloud.google.com/marketplace/product/bitnami-launchpadnginx-intel
Bitnami 面向英特尔的 WordPress:
• AWS Marketplace:https://aws.amazon.com/marketplace/search/results?searchTerms=WordPress+Bitnami+Intel
• Azure Marketplace:https://azuremarketplace.microsoft.com/zh-CN/marketplace/apps/bitnami.wordpress-intel
• GCP Marketplace:https://console.cloud.google.com/marketplace/product/bitnami-launchpad/wordpress-intel