タグ別アーカイブ: RDS

MySQL(AWSのRDS)で高負荷なSQLを実行してしまい、CPUがずっと100%のままになってしまった

とあるWebサービスを作成してて、DBのクエリー処理を変更したら、サイトが応答しなくなってしまいました。

EC2とRDSの状態を確認してみたところ、RDSのほうでCPU使用率が100%固定になってしまっていました。

しばらく待てばおさまるかなと思いつつ30分、、、

一向におさまる気配はありません、データ量はまだそんなにないのでクエリーがよほどひどかったのでしょう。テーブルの構造を変更する必要がありそうです。。。

そんなことはさておき、30分経ってもおさまらないので、何か対策が必要です。

思いつくのは実行されているであろうクエリーを探し出し、そいつをSTOPすること。

以下の手順で行ないました

EC2上で

mysql –host example.rds.amazonaws.com -u exampleuser -pExamplePassword

のようなコマンドでSQLにログイン

SHOW FULL PROCESSLIST\G

を実行して、残っているクエリ一覧を表示し、あやしいクエリーのIDを控える

KILL 218815;

であやしいクエリーをストップ(数字のところは先ほど控えたIDに置き換えてください)

以上の対策で、無事にCPU使用率が下がりました。

もう少しカンタンにプロセス管理ができるといいんですが。。。