ずいぶん前にこの記事を読んで、MyISAMでベンチマークしてみたいと思ってたんだけど、EC2で試してみることにした。
- サーバ
- クライアント
- 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)以外は誤差の範囲内かなぁ…