发布于: Oct 30, 2022

Graviton2 高性能云主机的使用也很简单,对于托管服务只需在实例选择阶段选择 Graviton2 系列实例即可,另外 Amazon RDSAmazon Elasticache 等还可以把当前 X86 实例直接切换为 Graviton2 实例。

对于 EC2 自建服务,需要在操作系统选择界面时候选择 ARM 64 位版本即可(这里包括您熟悉的 Amazon linux2RedhatUbuntuSUSE linuxFedoraFreeBSDDebian 等)。你会发现常用软件包和之前使用的安装方式相同(yum,apt-get,pip,npm…,尽管某些应用程序可能需要重新编译,但是基于解释语言(例如 Java ,NodeJS ,Python ,Go) 可以未经修改地运行。对于编译性语言如 C 等和或 Python 某些库基于 C 语言开发等极少数情况下,您需要重新编译或调试代码,这部分建议参考 github 上的 amazon-graviton-getting-started 网站。

下面分别以 Amazon linux2 Ubuntu18.04 为例演示 EC2 自建系统的主要开发工具和依赖环境的构建过程,考虑大量新版本软件针对 Arm 做了性能优化,尽量用较高版本如 php7.4 以上。

Amazon linux2(由 Amazon Web Services 提供长期技术支持并免费提供的 linux 分支,内核做了深度安全和性能优化,支持免费的内核实时补丁,操作上近似 Redhat7)参考步骤如下:

$ sudo yum update -y   # 升级内核和重要补丁

$ sudo reboot # 内核更新后需要重启系统

$ uname -r # 查看内核版本,当前为 4.14.200-155.322.amzn2.aarch64

$ sudo yum groupinstall -y “Development Tools”   # 安装开发工具包

$ sudo amazon-linux-extras enable golang1.11 corretto8 php7.4 python3.8 ruby2.6  #这个会输出 amazon-linux-extras 命令告诉我们要安装那些软件包(这里采用 Extras 库,也支持 EPEL 外部源)

$ yum clean metadata

$ sudo yum install -y golang java-1.8.0-amazon-corretto \

php-cli php-pdo php-fpm php-json php-mysqlnd \

python38 ruby ruby-irb rubygem-rake rubygem-json rubygems

下面让我们检查一下刚刚安装的工具版本:

$ go version
go version go1.13.15 linux/arm64
$ java -version
openjdk version “1.8.0_272”
OpenJDK Runtime Environment Corretto-8.272.10.3 (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM Corretto-8.272.10.3 (build 25.272-b10, mixed mode)

#Amazon Corretto 是开源 Java 开发工具包 (OpenJDK),是 OpenJDK 的可靠版本并通过 TCK 认证, Corretto 包括安全修复和性能增强,垃圾回收调度,防止内存不足的情况,以及改进的监视,报告和线程管理,并提供长期支持,亚马逊在内部以数千种生产服务运行 Corretto

$ php -v
PHP 7.4.11 (cli) (built: Oct 21 2020 19:12:31) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
$ python3.8 -V
Python 3.8.5
$ ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [aarch64-linux]

Ubuntu18.04 参考步骤如下:

$ sudo apt update  #aptapt-get 相同(后面会分别展示)

$ sudo reboot  #如果有内核更新,需要重启系统(当前没有)

$ uname -r  #查看内核版本,当前为 5.4.0-1029-aws ,update 前后并没有变化

$ sudo apt  install -y build-essential    #安装开发工具包 gccmak e

方法 1:如果基于 ppa 源请参考下面步骤,以 PHPpython 为例:

$ sudo apt -y install software-properties-common #用于添加 ppa

$ sudo add-apt-repository ppa:ondrej/php   # PPAPHP7.4

$ sudo apt update
$ sudo apt -y install php7.4
$ php -v
PHP 7.4.12 (cli) (built: Oct 31 2020 17:04:09) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.12, Copyright (c), by Zend Technologies

$ sudo add-apt-repository ppa:deadsnakes/ppa  #   PPApython3.8

$ sudo apt-get update
$ sudo apt-get install python3.8
$ python3.8 -V
Python 3.8.6

方法 2:如果基于传统方式安装请参考下面步骤,以 Corretto 为例:

$ curl https://apt.corretto.aws/coretto.key | sudo apt-key add –
sudo add-apt-repository ‘deb https://apt.corretto.aws stable main’

首先导入 Corretto 公有密钥,将存储库添加到系统列表

$ sudo apt update

$ sudo apt install -y java-1.8.0-amazon-corretto-jdk #如果希望基于 java8 环境

$ java -version
openjdk version “1.8.0_275”
OpenJDK Runtime Environment Corretto-8.275.01.1 (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM Corretto-8.275.01.1 (build 25.275-b01, mixed mode) $ sudo apt  install -y java-11-amazon-corretto-jdk #
如果希望基于 java11 环境
$ $java -version

openjdk version “11.0.9.1” 2020-11-04 LTS

OpenJDK Runtime Environment Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS)

OpenJDK 64-Bit Server VM Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS, mixed mode)

Amazon linux2 Redis 的安装基本过程

$ sudo yum install gcc  tcl -y  #安装 gcc 编译器和 redis test 所需 tcl 组件。

$ wget http://download.redis.io/releases/redis-6.0.9.tar.gz  #官网下载所需版本

$ tar xzf redis-6.0.9.tar.gz  #解压缩

编译阶段,这里有 2 个选择,选择(1)使用默认的 jemalloc

$ cd  redis-6.0.9/deps  #进入这个目录

$ make hiredis jemalloc linenoise lua geohash-int

$ cd ..  #回到 redis 主目录

$ make

选择(2)使用 MALLOC

$ cd  redis-6.0.9

$ make MALLOC=libc

安装完毕可以运行下面测试

$ make test #验证 redis 安装成功,底部可以提到: “\o/ All tests passed without errors!”

$  ./src/redis-server &  #后台运行 redis 服务

$ ./src/redis-cli  #运行 redis 客户端

127.0.0.1:6379> ping  #测试 redis 工作正常

PONG

另外还可以运行 redis 自带测试工具 ./src/redis-benchmark 进行性能测试

Ubuntu18.04 Redis 的安装基本过程

$ sudo apt update

$ sudo apt install build-essential tcl -y

$ wget http://download.redis.io/releases/redis-6.0.9.tar.gz

$ tar xzf redis-6.0.9.tar.gz

$ cd redis-6.0.9

$make

有兴趣的朋友可以对比测试下 Amazon Web Services 5 代实例和 Graviton2 系列实例,看看在相同 vCPU 下,您的应用性能提升是否满意。

相关文章