EC2とMySQLとダンプリストア
EC2上のMySQLで、大量データをダンプリストアしようとしたらとんでもない時間がかかりましたという話。
経緯
EC2で運用してるサイトのMySQLのibdata1が結構なサイズに膨らんでしまったので、ダンプリストアして縮小+ibdata1を分割しようとした。
誤算
7000万件、50Gぐらいのダンプを出すのに1hかかった。これは想定内。
ただ、インサートに8時間かかった。勿論--opt付きで。
勿論メンテ時間オーバーで大変悲しい目にあった。
なんでやねん
EC2(EBS)への書き込みって平均25MB/secぐらいしかでてないっぽい。
加えて単なる書き込みじゃなくてインサートだったので更に遅くなったっぽい。
結局
インサートでの復旧は断念して、バックアップからファイルコピーで復旧。
こっちは2時間ぐらいで終わった。
結論
EC2でそういうことするのはやめましょう。
というかクラウド全般でI/O速度がネックになるような作業をするなという話ですね。わかります・・・
今回みたいなことをしたい場合は
- 時間を気にしなくてもいいようにする
- うまくやろうぜ
- 普通の環境でデータを作ってからファイルコピーで復旧する
- そもそもEC2でやらなくてもいいじゃん・・・
という感じで。
いい勉強になりました。