发布于: Oct 30, 2022
Graviton2 高性能云主机的使用也很简单,对于托管服务只需在实例选择阶段选择 Graviton2 系列实例即可,另外 Amazon RDS、Amazon Elasticache 等还可以把当前 X86 实例直接切换为 Graviton2 实例。
对于 EC2 自建服务,需要在操作系统选择界面时候选择 ARM 64 位版本即可(这里包括您熟悉的 Amazon linux2、Redhat、Ubuntu、SUSE linux、Fedora、FreeBSD、Debian 等)。你会发现常用软件包和之前使用的安装方式相同(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 #apt 和 apt-get 相同(后面会分别展示)
$ sudo reboot #如果有内核更新,需要重启系统(当前没有)
$ uname -r #查看内核版本,当前为
5.4.0-1029-aws ,update
前后并没有变化
$ sudo apt install -y build-essential #安装开发工具包 gcc、mak e等
方法 1:如果基于 ppa 源请参考下面步骤,以 PHP 和 python 为例:
$ sudo apt -y install software-properties-common #用于添加 ppa 源
$ sudo add-apt-repository ppa:ondrej/php # PPA 含 PHP7.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 # PPA含python3.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 下,您的应用性能提升是否满意。
相关文章