LoginSignup
1

posted at

updated at

RDS for MySQL(8.0.30 以降)で Optimized Writes を試してみた

こちらは MySQL Advent Calendar 2022 21 日目の記事です。

昨日は ryuichi1208 さんでした。


AWS の re:Invent の前後に、今年もいろいろな新サービスや改良などが発表されていますが、RDS for MySQL 関連では、

がありました。

このうち、前者(Read 高速化)は検証が難しそうなので、後者(Write 高速化)を少しだけ試してみました。

RDS Optimized Writes とは?

通常、MySQL ではストレージへの書き込み時に(障害対策のため)Double Write Buffer を使って二重に書き込みを行うのですが、これをクラウド基盤側(Nitro System)にオフロードして 1 回の書き込みで済ませてしまおう、という機能のようです。

「クラウド基盤側にオフロードする」といっても基盤側で二重書き込みするわけではなく、二重書き込みの代わりに「データページ単位でアトミックな書き込みができるようにする」という意味です。

現時点(2022/12/20)では

  • RDS for MySQL 8.0.30 以降

で、

  • db.r6i
  • db.r5b

のインスタンスのみ対応、とのことです(東京で使えるのは後者だけ)。

今回は db.r5b インスタンスを使って試してみました。

試した内容

  • db.r5b.large(2vCPU Mem:16GiB)Single-AZ に対してmysqlslapで負荷を掛ける
  • mysqlslapではmixedタイプ(読み書き両方)の負荷を 150・300・450 スレッドで
    • 追加でwrite(書き込みのみ)タイプの負荷も 450 スレッドで
  • パラメーターrds.optimized_writesAUTO(デフォルト)・OFFの状態で比較
    • 前者が Optimized Writes 有効(基盤へオフロード)、後者が無効(従来どおり DB 本体で二重書き込み)

マネジメントコンソールでの設定(画面の一部)

スクリーンショット 2022-12-20 18.59.58.png

RDS の MySQL インスタンスを作る際のマネジメントコンソールに、Optimized Writes に関する項目が見えていますね。

2022/11 からストレージとして gp3 が使えるようになっています。

EC2 コンピューティングリソースへの接続は、2022/8 に追加された機能(設定を楽にする項目)のようです。

結果

3 回実行したうちの平均を取りました。

※数値は所要時間(秒)です。

  • mixed(読み書き両方)
mysqlslap(mixed)
mysqlslap --auto-generate-sql --auto-generate-sql-guid-primary --engine=innodb --number-int-cols=20 --number-char-cols=20 --concurrency=【スレッド数】 --auto-generate-sql-write-number=2000 --auto-generate-sql-execute-number=2000 --auto-generate-sql-load-type=mixed -u admin -h 【エンドポイント】 -p
rds.optimized_writes 150 スレッド 300 スレッド 450 スレッド
a. AUTO 59.069 127.198 213.588
b. OFF 60.430 131.648 218.756
(b / a) 1.02 1.03 1.02

かなり微妙な結果ですね。

  • write(書き込みのみ)
mysqlslap(mixed)
mysqlslap --auto-generate-sql --auto-generate-sql-guid-primary --engine=innodb --number-int-cols=20 --number-char-cols=20 --concurrency=【スレッド数】 --auto-generate-sql-write-number=2000 --auto-generate-sql-execute-number=2000 --auto-generate-sql-load-type=write -u admin -h 【エンドポイント】 -p
rds.optimized_writes 450 スレッド
a. AUTO 262.810
b. OFF 270.420
(b / a) 1.03

やはり微妙でした。

もう少し大きめのインスタンスを使って高い書き込み負荷を掛けないと実力が発揮できないのかもしれません。


明日は knktknk さんです。

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
What you can do with signing up
1