最近redisのデータ量が増えすぎて、スワップを使い始めている状態になってしまった。 メモリ使用量は7.3GBでキーの数は1400万ぐらい。 スケールアップを検討しつつも、余計なデータがないか軽く調査。 以前にもやったことがあるけど忘れるので後のためにメモとして残しておく。
まずrdbファイルを取得する。バックアップのエクスポートで今日のバックアップをS3にエクスポートした。1.8GBぐらい。
ファイルがでかいのでAWS上で作業する。 本番ウェブサーバーのコピーを使って適当に立てたインスタンスにrdbtoolsをインストール。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
これでOKなはずだったが・・・
1 2 3 4 5 6 7 8 9 10 11 |
|
あれ?
1 2 |
|
??
以前やったときはこんなことにはならなかったが???
よく見るとどうやら最新は9日前にリリースされたバージョンで、前回使ったのは古いやつだったらしい。
1 2 |
|
これでとりあえず動いた。pythonのバージョンの問題な気がするが、よくわからんので放置。
CSVの生成には20分ぐらいかかった。 次は出力されたCSVを加工していく。
1 2 3 4 5 6 7 |
|
出力されたCSVの中身はこんな感じ。 redis-objects gem使ってるとこういうキーのやつがいっぱいできちゃうよなー。 まとめやすいようにidっぽい部分を雑に置換する。
1
|
|
1 2 3 4 5 6 7 |
|
こいつを合計するスクリプトをざっと書いた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 |
|
余計なものがたくさんありそうなことはわかったけど、こいつらを消してもまだ足りなさそうな気がするなあ。
追記
定期的に削除する/できるようにする前のデータが残っていたのでまとめて削除した。 実装に手を入れたタイミングで消したつもりだった…。