フォーム読み込み中
2025年1月17日掲載
Alibaba CloudのApsaraDB RDSにてARMアーキテクチャが新たに導入されたので、ARMの紹介および検証をしてみます。
Alibaba CloudのリレーショナルデータベースであるApsaraDB RDSにARMアーキテクチャが仲間入りしました。ARMといえば、一見低電力で効率的な動作を目指す設計思想で開発されたプロセッサなので、低電力を意識したスマートフォンやタブレット、IoTこのARM クラウド上のデータベースのアーキテクチャとして登場するのはどういう意味なのか、通常使われるx86プロセッサよりコスト効率が良いのか続いていきますので、今回はApsaraDB RDSのARMアーキテクチャについて紹介また検証してみます。
※2023年7月10日時点で日本リージョンは未リリースです。
なお、日本のGigazine等各メディア記事で話題になった、「アリババがクラウドコンピューティングを最適化する「中国最先端」のサーバーチップ「「Yitian 710」を発表」が今回のARMに該当します。
結果からいうと、AlibabaのPingtou Geという半導体子会社がARMベースとなるYitian 710プロセッサチップを独自設計・開発し、Alibaba CloudのApsaraDB RDS ARMアーキテクチャとして実装しています。これはAlibaba Group独自の施策であり、いわばAlibaba CloudのApsaraDB RDS ARMアーキテクチャはパブリッククラウドの中でも独自のプロセッサチップとなります。
Yitian 710プロセッサチップは当時でCPU業界最先端の5nmプロセスを採用し、1チップに最大600億個のトランジスタを搭載した汎用サーバー向けCPUチップです。最新のARM v9アーキテクチャを採用し、128コア、最大CPU周波数3.2GHzで、性能と消費電力の両立を可能にしています。それだけでなく、チップの恩恵もあって処理能力に余裕ができているため、メモリとインターフェースには、業界をリードするDDR5とPCIE5.0の技術を統合することができ、結果としてチップに高負荷をかけず転送処理速度をより一層高めることに奏功しています。
Yitian 710プロセッサチップのスペック:
パッケージ | 2.5Dパッケージ、マルチDIEクロージャー |
|---|---|
CPUアーキテクチャ | ARM v9 |
コア数 | 128Core |
動作周波数 | 2.75GHz ~ 3.2GHz |
メモリ | 8チャネルDDR5 |
I/O | 96レーンのPCIe5.0 |
TDP消費電力 | 250W |
Yitian 710プロセッサチップは元々データセンターとクラウドサービスを前提に設計されているため、業界標準のテストプラットフォームのSPECInt2017において、従来の業界ベンチマークを20%上回る440スコアを記録しています。通常のデータセンターに使われるIntel Xeon Platinum 8362ですら350スコアなので、凄い記録ですね。
ApsaraDB RDS ARMアーキテクチャは先述通りAlibaba Cloud独自のYitian 710プロセッサチップが搭載されており、主に汎用コンピューティング、クラウドネイティブ、Android in Cloudのシナリオをターゲットとしています。Helpドキュメント上の情報によれば、同じ仕様のx86アーキテクチャと比較して25%の費用対効果向上を実現しているそうです。
ARMアーキテクチャが対応する構成は以下の通りになります。
MySQL | PostgreSQL | |
|---|---|---|
対応リージョン | 中国(杭州)、中国(上海)、中国(北京)、中国(張家口)、中国(深圳)、シンガポール | 中国(杭州)、中国(上海)、中国(北京)、中国(張家口)、中国(深圳)、シンガポール |
サポートエンジン | MySQL8.0のみ | PostgreSQL 13、14、15のみ |
エディション | 高可用性構成のみ | 高可用性構成のみ |
クラウドディスク | ESSDのみ | ESSDのみ |
※2023年7月10日時点での情報になります。
<参考>
Architectures (ApsaraDB RDS)
ApsaraDB RDSには昔からあったX86アーキテクチャと今回説明となるARMアーキテクチャで利用者観点としての違いは、x86と同じスペックでありながらARMアーキテクチャのほうが約13%安くなります。ARMに対応するRDS全てのインスタンスファミリーが対象です。
一つ例として、料金表をまとめると次の通りです。
ARMとX86の料金例比較:
アーキテクチャ | ARM料金例 | X86料金例 |
|---|---|---|
インスタンス | pg.n4.2c.2m (2CPU8GB) | pg.n4.2c.2m (2CPU8GB) |
インスタンス単価 | 0.172USD/時間 | 0.198USD/時間 |
ストレージ費用(100GB) | 0.05USD/時間 | 0.05USD/時間 |
合計 | 0.22USD/時間 | 0.25USD/時間 |
※杭州リージョン | ||
ここまでくると、同じスペックだった場合ARMはどのようなパフォーマンス向上が見込めれるか、気になりますよね。なので実際に検証してみます。
ApsaraDB RDS MySQL/PostgreSQLそれぞれのARM/x86アーキテクチャのパフォーマンスを比較したく、sysbenchで検証してみます。sysbenchの導入方法は過去記事でも幾つか紹介しているので、今回sysbench導入説明は割愛します。
sysbenchの導入準備が完了したら、Sysbenchのバージョンを確認します
sysbench –version
ここでバージョンが問題なければ、引き続きスクリプトを2つ設定します。
今回のパフォーマンス確認に使うインスタンスはMySQLならmysql.n4m.medium.2c(2cpu 8GB)、PostgreSQLならpg.n4m.2c.2m(2cpu 8GB)、Sysbenchパラメータは thread=500、SIZE=10000000、tables=100、time=120 としています。
prepare.sh :
#!/bin/sh
mkdir -p logs
thread=500
echo "prepare data using default settings, ref sysbench SIZE" >> logs/sysbench_read_write_0_prepare.log
./sysbench.sh prepare ${thread} >> logs/sysbench_read_write_0_prepare.log
echo "data had been successfully initialized." >> logs/sysbench_read_write_0_prepare.log
sysbench.sh :
#!/bin/sh
LUA=/usr/share/sysbench/oltp_read_write.lua
SIZE=10000000
DB=pgsql
HOST=pgm-1ud78r9lmbur2ayt.pg.rds.aliyuncs.com
PORT=5432
USER=sbtest
PASSWORD=Test1234
DBNAME=sbdb
usage()
{
echo "Usage: ./sysbench.sh <prepare|run|cleanup> <num of threads>"
exit "${1}"
}
#chack argumets
if [ "${1}" = "" -o $# -gt 3 ]; then
usage 1
elif [ "${2}" = "" ]; then
THREADS=1
else
THREADS=${2}
fi
echo "Running command: sysbench ${LUA} --db-driver=${DB} --pgsql-host=${HOST} --pgsql-port=${PORT} --pgsql-user=${USER} --pgsql-password=${PASSWORD} --pgsql-db=${DBNAME} --table-size=${SIZE} --tables=100 --events=0 --time=60 --db-ps-mode=disable --percentile=95 --report-interval=1 --threads=${THREADS} ${1}"
sysbench ${LUA} --db-driver=${DB} --pgsql-host=${HOST} --pgsql-port=${PORT} --pgsql-user=${USER} --pgsql-password=${PASSWORD} --pgsql-db=${DBNAME} --table-size=${SIZE} --tables=100 --events=0 --time=120 --db-ps-mode=disable --percentile=95 --report-interval=1 --threads=${THREADS} ${1}
上記準備したscriptを流しつつ、ベンチマーク用データを準備します。
cd /root/arm
chmod a+x *.sh
nohup sh prepare.sh 2>&1&
ベンチマーク用データの準備が完了しました。新たにテーブルが追加されていますね。
以下Shellを作り、`nohup sh test.sh 2>&1&` コマンドでベンチマークします。
test.sh
#!/bin/sh
DATE=`date '+%Y%m%d%H%M'`
mkdir $DATE
# thread=500
# echo "prepare data using default settings, ref sysbench SIZE" >> ${DATE}/sysbench_read_write_main.log
# ./sysbench.sh prepare ${thread} >> ${DATE}/sysbench_read_write_main.log
for thread in 500
do
echo "Time: $(date +"%Y%m%d%H%M%S"), now running sysbench with thread of: " + ${thread} >> ${DATE}/sysbench_read_write_${thread}.log
./sysbench.sh run ${thread} >> ${DATE}/sysbench_read_write_${thread}.log
done
# echo "cleaning data up." >> ${DATE}/sysbench_read_write_main.log
# ./sysbench.sh cleanup ${thread} >> ${DATE}/sysbench_read_write_main.log
sysbench.sh
#!/bin/sh
LUA=/usr/share/sysbench/oltp_read_write.lua
SIZE=10000000
DB=pgsql
HOST=pgm-1ud78r9lmbur2ayt.pg.rds.aliyuncs.com(現在このインスタンスは削除済)
PORT=5432
USER=test
PASSWORD=Test1234(現在このインスタンスは削除済)
DBNAME=sbdb
usage()
{
echo "Usage: ./sysbench.sh "
exit "${1}"
}
#chack argumets
if [ "${1}" = "" -o $# -gt 3 ]; then
usage 1
elif [ "${2}" = "" ]; then
THREADS=1
else
THREADS=${2}
fi
echo "Running command: sysbench ${LUA} --db-driver=${DB} --pgsql-host=${HOST} --pgsql-port=${PORT} --pgsql-user=${USER} --pgsql-password=${PASSWORD} --pgsql-db=${DBNAME} --table-size=${SIZE} --tables=100 --events=0 --time=120 --db-ps-mode=disable --percentile=95 --report-interval=1 --threads=${THREADS} ${1}"
sysbench ${LUA} --db-driver=${DB} --pgsql-host=${HOST} --pgsql-port=${PORT} --pgsql-user=${USER} --pgsql-password=${PASSWORD} --pgsql-db=${DBNAME} --table-size=${SIZE} --tables=100 --events=0 --time=120 --db-ps-mode=disable --percentile=95 --report-interval=1 --threads=${THREADS} ${1}
ベンチマークを実行します。
nohup sh test.sh 2>&1&
MySQL、PostgreSQLそれぞれ同じ手順でSysbenchベンチマークをします。それぞれ5回実行し、その平均値を使って評価します。
ApsaraDB RDS MySQLとPostgreSQLそれぞれのx86とARMを比較したところ、以下の結論になります。
ここまで差が付くと、ARMアーキテクチャによる凄まじい恩恵を感じられます。
今回2CPU(2Core)のみで検証したのか、2Core観点での比較としてはARMアーキテクチャにより性能が伸びていることを確認できました。ただし、マルチスレッドとして4Core、16Core、32Core時での検証が未実施なので、本比較は参考程度に留めて頂ければ幸いです。
ApsaraDB RDS MySQL、PostgreSQLにARMアーキテクチャが登場することにより、ユーザーとしては低価格かつ、より良いパフォーマンスを発揮することができるようになりました。それだけARMアーキテクチャはコストパフォーマンスが高いので、RDSベースによるアーキテクチャを検討している際には参考にしていただければ幸いです。
Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。
MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。
条件に該当するページがございません