MyISAM、ext3、writeback

ずいぶん前にこの記事を読んで、MyISAMベンチマークしてみたいと思ってたんだけど、EC2で試してみることにした。

  • サーバ
    • m2.4xlarge(4コア / 64GB)
    • CentOS 5.4
    • MySQL 5.0.77
  • クライアント
    • c1.xlarge(8コア / 7GB)
    • CentOS 5.4
    • mysqlslap 1.0

mysqlslapのオプションはこんな感じ。

mysqlslap \
  --auto-generate-sql \
  --auto-generate-sql-add-autoincrement \
  --engine=MyISAM \
  --number-int-cols=4 \
  --number-char-cols=8 \
  --concurrency=8 \ # 同時接続数は8(コア数分)
  --auto-generate-sql-execute-number=10000 \
  --auto-generate-sql-load-type=update \ # 並列にUPDATE
  -h ip-XXX-XXX-XXX-XXX
  -u scott \
  -ptiger \
  --auto-generate-sql-write-number=10000 # 初期データは100万件

結果。(数字はqps)

fs 1回目 2回目 3回目 平均
ext3(defaults) 2086 2064 2522 2224
ext3(defaults,noatime) 8821 8296 9130 8749
ext3(defaults,noatime,data=writeback) 8015 9210 10765 9330
ext2(defaults) 13227 8422 9273 10307
ext2(defaults,noatime) 8450 8748 9405 8868

ext3(defaults)以外は誤差の範囲内かなぁ…