
By: William Warby
私の運営しているとあるサイトでの話ですが、Disc I/Oエラーが発生。
どうやらHDDの容量が一杯になっているみたいですが、おかしい・・・。
意外なディレクトリが肥大化していた
サーバー自体どう考えても100G以上の余裕はあるはず・・・と思いつつもdfコマンドを打って確かめてみた所・・・。
Use 100% (´Д`;)
一体何が起こったのかわかりませんでしたが、ひとまずどのフォルダが大きいのか確認。
#フォルダ内のファイルサイズの合計を表示 du -sh ./*
するとWEBページのディレクトリが大きいのがわかりました。
てっきりログが溜まり過ぎたとか、ヘタしたらディスクエラーでも起こしているのか思ったら普通に何かのファイルで容量が一杯。
で、調べていった結果。
WordPressの「wp-contents」フォルダ内にある「cache」フォルダが肥大。
というか、177Gって・・・ここまで気づかない私も酷いですが・・・w
原因となっているのはプラグインの「Head Cleaner」の様です。
参考にさせてもらったのはこちらのサイト
icoro : WordPressで使ってるHead Cleanerのキャッシュが50GBとかになっていた話
上記のサイトで解説されてある通り、ここまでキャッシュが肥大化するのは「WordPress Popular Posts」というプラグインが原因のようです。
今後使用するときは上記プラグインをキャッシュ対象から外す事で今回の様な事になるのを防げそうです。
177Gあるキャッシュファイルを消すのが問題に

By: reynermedia
とにかくファイル数がとんでもないことになってます(そりゃそうだ・・・)
普通のコマンド打っても蹴られます。
# 当たり前にコマンド打ってもエラーww rm -rf ./cache /bin/rm: Argument list too long
ということでこちらを参考にさせて頂きました。
どうやらパイプを使って検索した結果(リスト)をrmコマンドに渡してやると消してくれるようです。
最終的にこんな感じで。
# とりあえず消すファイルがいくつあるのか見てみる # ※「Head Cleaner」のキャッシュディレクトリに移動してます。 ls -U ./js/ | wc -l # とんでもない数字が出てきたので見なかったことにしました(数百万単位(´Д`;)) # findコマンドの結果をrmコマンドに渡す find ./js/ -name '*.js' | xargs rm
「cache」フォルダ内の「css」フォルダは普通に消せたので残る「js」フォルダの中のjsファイルを対象にしました。
ただ・・・これ消し終わるまでどのくらいかかるのか・・・・。
とりとめのないまとめ
削除コマンド打ったまま放置するのが怖かったのでPCの前にいる時だけコマンドを走らせ、結局全てのファイルを消すまでに一日以上掛かってしまいました・・・。
CPU、I/Oともに問題になるほどの負荷は無かったですがファイル数が膨大で予想よりも時間がかかりました。
「Head Cleaner」を使っている方、一度確認してみましょうw
HDDが一杯になってからだと色々と面倒です(´Д`;)