LoginSignup
1
0

AuroraServerlessV2の限界性能を実測してみた(ACU128)

Last updated at Posted at 2023-11-10

はじめに

  • Amazon Aurora Serverless v2の最大性能であるACU128をsysbenchで測定しました。
  • 比較のために別記事で測定したACU16の結果も掲載しています。

測定条件

  • クライアントとしてEC2を作成
  • EC2から「sysbench」を実行し、5分間の負荷テストを実行
  • クライアントEC2
    • AMI「al2023-ami-2023.2.20231011.0-kernel-6.1-x86_64」
    • ボトルネックにならない程度に大きめにインスタンスタイプは「c6in.2xlarge」を利用
  • 測定対象Aurora
    • 性能:最小と最大ACUに同じ値を設定し性能を固定
    • EC2と同一AZにライターインスタンス、別AZにリードレプリカ1台
    • ライターのエンドポイントに対して負荷テストを実施
  • Sysbench
    • テーブル数:1件(デフォルト)
    • レコード数:10000件(デフォルト)
    • 負荷テスト時間:5分
    • 同時実行スレッド数:8
    • トランザクション:一般的なReadとWriteの組み合わせを実行
稼働方式 性能設定 構成 備考
ServerlessV2 16ACU マルチAZ 2台
(ライター1/リーダー1)
MySQL8.0.28
vCPU 4(推定)
メモリ32GB
※vCPUは仕様非公表
ServerlessV2 128ACU マルチAZ 2台
(ライター1/リーダー1)
MySQL8.0.28
vCPU 32(推定)
メモリ256GB
※vCPUは仕様非公表
  • 実行コマンド
# 初期セットアップ
sudo su - ec2-user
sudo dnf install postgresql15 postgresql-libs mariadb105 luajit -y
sudo rpm -ivh ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/updates/testing/34/Everything/x86_64/Packages/s/sysbench-1.0.20-5.fc34.x86_64.rpm

# DB接続設定
DBHOST_S1='xxxxxxxxxxxxxx.cluster-cg6p7h0krbrs.ap-northeast-1.rds.amazonaws.com'
DBPASS='xxxxxxxxxxxxxx'

# database作成
echo 'CREATE DATABASE benchmark' | mysql -h ${DBHOST_S1} -P 3306 -u admin -p

# prepare
sysbench --db-driver=mysql \
      --mysql-host=${DBHOST_S1}  \
      --mysql-user=admin \
      --mysql-password=${DBPASS} \
      --mysql-db=benchmark \
      oltp_read_write \
      prepare

# run
sysbench --db-driver=mysql \
      --mysql-host=${DBHOST_S1}  \
      --mysql-user=admin \
      --mysql-password=${DBPASS} \
      --mysql-db=benchmark \
      --time=300 \
      --threads=8 \
      oltp_read_write \
      run

測定結果

項目 16ACU(参考) 128ACU 比較
ピーク時CPU使用率 81% 14% -67%
transactions(per sec) 533.05 752.87 +41%
queries(per sec) 10663.9 15061.92 +41%
queries(per sec) 10663.9 15061.92 +41%
  • 比較するとCPU使用率は約5.78倍の負荷軽減
  • 5分間でのトランザクション実行数は1.4倍に増加
  • ACUが16→128の8倍に対して実測性能5.78*1.4=8.1倍の性能でほぼ理論通りですね

128ACUの結果↓

SQL statistics:
    queries performed:
        read:                            3163328
        write:                           893467
        other:                           461954
        total:                           4518749
    transactions:                        225869 (752.87 per sec.)
    queries:                             4518749 (15061.92 per sec.)
    ignored errors:                      83     (0.28 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          300.0100s
    total number of events:              225869

Latency (ms):
         min:                                    6.16
         avg:                                   10.63
         max:                                   60.57
         95th percentile:                       12.30
         sum:                              2399900.12

Threads fairness:
    events (avg/stddev):           28233.6250/299.32
    execution time (avg/stddev):   299.9875/0.00

パフォーマンスインサイト

  • 128ACU
    image.png

まとめ

  • リソースの性能も使い切れていませんが、計算するとほぼACUに比例した実測結果となりました
  • 利用料金が怖いので1回しか測定しておらず、FargateのようなCPUガチャが存在するかは不明です。
  • 今回は1ACUあたりの性能(インスタンスの種類)は最大の128ACUでも変わっていないと推測できます。
  • 次回は違うバリエーションでもう少ししっかりとした負荷テストをしてみたいと思います。

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0