LoginSignup
2
2

More than 5 years have passed since last update.

RDS(MySQL)における直線性能の検証

Posted at

検証においての前置き

なぜこの検証を実施したか

MySQL利用の際に並列度を上げればある程度qps(commit per sec?)はあげられます。
今回はアプリケーション実装やシステム環境の制約により、1接続にて順次データを導入していく必要性がありました。
次の節にて要件および制約条件を書きます。

制約条件・要件

  • 挿入・更新を実施するMySQLは1つだけ・参照系は複数接続あり
  • RDSリードレプリカの利用は想定しない
  • 速度的に問題なければバイナリログ関連設定の変更は行いたくない
  • PITRなどへの影響は最小限にしたい

検証

調整内容

以下2点に絞って検証しました。

  • InnoDB xaサポートの無効化(innodb_support_xa=0)
  • InnoDB ログフラッシュ時のsync(innodb_flush_log_at_trx_commit=2)

結果

3回実施の中間値です。

Mangetic gp2 PIOPS1000
None 3.551 2.278 2.142
xa 1.370 1.029 1.022
flush 2.074 1.290 1.086
xa+flush 1.357 1.276 1.046
  • xa = innodb_support_xa=0
  • innodb_flush_log_at_trx_commit=2

余談ですが、この結果より innodb_support_xa=0 を適用することにしました。

考察

PIOPSをもっと大きく(例:PIOPS10000)などにすると結果が変化するかもしれません。

検証方法

mysqlslapで、ひたすら直線的にinsertを行う方法で実施しました。

time mysqlslap \
  --user=${USER} \
  --password=${PASSWD} \
  --host=${RDSHOST} \
  --port=3306 \
  --engine=innodb \
  --auto-generate-sql \
  --auto-generate-sql-load-type=write \
  --auto-generate-sql-add-autoincrement \
  --number-char-cols=5 \
  --number-int-cols=10 \
  --number-of-queries=1000 \
  --concurrency=1 \
  --iterations=10
2
2
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
2
2