WordPressプラグイン Head Cleanerのキャッシュでサーバ容量50GB圧迫。解決法+対策法をまとめておく。

シゴトクリエイターの大橋です。

寒くなったり暑くなったりで体調管理が大変ですね。とはいえ基本寒いので温かくしながらカタカタ書いています。

さて、今回は以前ロリポップのプランをスタンダードプランにして、50GBで足りないからなあと思って120GBにしたのですが、なんとさすがに容量使いすぎでは?と調べたら、Wordpressのプラグインが悪さをしていたことが分かりました。

53GBをキャッシュで占めている状態

というわけで、知見を共有していきたいと思います。

サーバの容量を圧迫する原因

WordPressのプラグインを色々入れている方は多いと思います。その中で、Head Cleanerを入れている人も多いのかなと思います。Heac Cleanerは何をしてくれるかというと、javascriptやCSSなどのキャッシュを作って閲覧スピードを上げるというものです。多分。

僕はバズ部で紹介されていたHead Cleaner の最も理想的な設定方法というところであまり深く考えずに入れたと思います。ちなみにこの記事ではキャッシュ削除にもちらっと触れられていますが、今回の件とはあまり関係がありませんね。

それでこのHead Cleanerがキャッシュを作るのはいいのですが、そのキャッシュ自動で削除とかしてくれるわけではないんです。僕が確認したところ、なんと2016年3月頃からjsファイルが貯まっていました。jsファイル自体は200KB以下とか可愛いものですが、なんとそのファイルが30万ファイル(笑)あるので、50GBとかいっちゃうんですね。つまり、小さいキャッシュファイルが大量に作られていて、かつ誰も消さないので圧迫していたとなります。

上のキャプチャにもありますが、30万ファイル超えてますが、さすがにWordpressを使ってもそんなにもファイルは出来ません(笑)

なぜそんなにキャッシュが出来るか?

これについては、先達が既に解明してくれています。WordPressで使ってるHead Cleanerのキャッシュが50GBとかになっていた話です。なのですが、僕の場合このHead Cleanerが他のプラグインの影響なのか、有効なフィルタという設定画面に出てきません><

よって、PopularPostsも使っているのでそれが原因っぽいですが、ここはHead Cleanerの有効なフィルタでは対応できないということで放置します。

逆に有効なフィルタで外せる方は外せば解決かなと思います。

解決方法

キャッシュが50GBあったのでそれをクリアすればいいということが分かりました。Head Cleanerの設定画面の下のほうに以下のボタンがあります。

そのままですが、削除を押すと50GBが一瞬で消えました。ただ、おそらくですが、これは現状で120GBも容量が確保されていたからすぐ消えたのかなと思います。削除時間は数秒で終わりました。

おそらく50GB容量のままで、容量圧迫で30万ファイルを消すとなると相当時間がかかったのではないかとヒヤヒヤしています。他のサイトなど見ると、FTPなどでちまちまけしたり、色々試して1日はかかった(10時間とかですよ)という話も見ました。お疲れ様です・・・。

参考になったサイト

このWordpressのHead Cleanerキャッシュについては盲点でした。というか、サーバ容量を圧迫している時点で気づけなかったのは、そもそもFTPでどこが容量を食っているかが分からなかったからです。

具体的にはFTPソフトなどでサーバログインした状態で、どこが容量を食っているかって分からないはずです。フォルダを選択して一個ずつ見ていくしかないと、いやいや他にも方法あるでしょと思ったんですがなさそうです(笑)

大分古いですが2008年の人力検索はてなの投稿に、レンタルサーバーの容量がいっぱいになってきたので要らないファイルを削除…という質問があります。これに対する答えは、右クリックで容量計算確認か、linuxの知識で対応となります。linuxというのは要はサーバログインをFTP以外でするということです。このあたりSSHログインとか意味が分からないとか抵抗感がある(良くわからないから)ならすでにこの時点で分からないはずです。

だからこそアイデア記事のネタとしても考えたくらいというところですね。

先達の悲鳴をお聞きください(笑)以下、サイト名、引用は同サイトよりとなります。

【Head Cleaner】は取り扱い注意!?WPプラグイン

WordPress初心者さんは特に注意してくださいね。このプラグインはキャッシュが気がつかない内に膨大な数になってしまって、下手すりゃ数十GB単位に膨れ上がってしまう。

本当そうですよね。Wordpress初心者だなあと思いました。修行ですね。このサイトにあったWP Fastest Cacheを使っているというのがあって、それを調べるとこのプラグインはキャッシュ有効期限がちゃんとあるんですね・・・。

蛇足ですが、

初心者にも扱いやすいWordPressキャシュプラグイン「WP Fastest Cache」の使い方

こちらの記事では、個人的にとありますが、最低月10万PV以上ないかぎり不要だというのがあり、あーそれくらいアクセスいるのねということで、この時点でHead Cleanerはとりあえず停止としておきました(笑)そして入れるなら上のWP Fasted Cacheにする予定です。まだまだ先の話ですね。

「WordPress」の定番プラグイン!「Head Cleaner」がWebサーバーのディスク容量を圧迫する問題に関する対策方法について

そして「Head Cleaner」からWebサーバーにキャッシュされた「CSS」及び「JavaScript」のキャッシュファイルが肥大化する原因に関しては、おそらく「Head Cleaner」がWebサーバーにキャッシュされた「CSS」及び「JavaScript」のキャッシュファイルを自動的に削除する機能を実装していないために、「Head Cleaner」からWebサーバーにキャッシュされた「CSS」及び「JavaScript」のキャッシュファイルが肥大化していくと思われます。

ですよねー。削除機能ないんですよねー。まあ無料で使わせてもらっておいて色々いってもあれですが、仕方ないですね。

[Å] Head Cleaner 本当危険!サーバ42GB圧迫でブログ更新不可になった

つい先日までブログの更新ができたのに…。画像がアップロードできなくなり原因を探っていたらなんとなく怪しかったのがサーバ容量。

確かにWordpressでいえばメディアファイルをアップロードする時にアップ出来ない時ですよね。その時にキャッシュに気付けるかですよね。この方はFTPソフトではエラーで開けなかったようで、運営会社に連絡ということのようです。ここまでいくとつらいですね。お疲れ様です。

48GBものサーバ圧迫の原因はHead Cleanerにあった!!

この方の場合、ロリポップで50GB近くあったので簡単に消えず何回か削除押してなんとかなったというようです。

Head Cleaner【WordPressプラグイン】に落とし穴!?

お疲れ様でした・・・。

対策方法

解決とは別で今後どうするかを考えてみました。

  1. HeadCleanerを使わない
  2. HeadCleanerを使う(有効なフィルタを入れる)
  3. WP Fastest Cacheのようにキャッシュ自動削除機能があるプラグインを使う
  4. 自動的に削除するcronを設定する

の4つかなと思います。

今回そもそもキャッシュプラグインを入れないと駄目かというと多分「入れとかないより入れといたほうがいい」みたいな初心者的理解でやっていたのがまずいかなというのがあります。よって、今回は1でいきます。ただ、やはり使いたいなら3かなと。

2はそもそも僕の環境だとこちらの原因のほうが気になりますが、有効なフィルタが見えないので出来ません。

4もやろうかと思ったんですが、そこまでしてHeadCleanerを使いたい何かがないので、やめました。ちなみにcronとはサーバ上で指定の日にちや時間でプログラムを動かせるというプログラムです。ロリポップでも出来ます。例えばTwitterボットとか。今回であれば、例えば月末に1回キャッシュ削除をするとかです。指定日付以前の古いファイルを削除したり移動する方法のようにfindコマンドを入れたものを書いておくということになります。cron自体はうろ覚えですが、phpとかperlとかシェルスクリプトとかrubyとかロリポップで動くやつなら使えると思います。

そういえば何でHead Cleanerのキャッシュと気づいたの?

これは書いておいたほうが備忘録っぽくていいですね。

思えば、最初のヒヤリは、画像がアップロードできなかったとか、バックアップが取れなくなった(容量不足のため)というところでした。

その時なんでこんなにサーバ容量使うんだろうと思っていたものの、Wordpressが原因だとしても、フォルダ単位で探すのが面倒なのでさぼって、金の力(笑)で容量増やして終わりかなと思っていました。

その後再度見るとそんなに日数経ってないのに3,4GB増えてました(笑)キャッシュですね。これはあかんぞということで、SSHログインもできるので、容量チェックが楽であろうということで試してみました。

SSHログインとは、WindowsであればTeraTermなどで、ロリポップではSSH有効とすると接続先情報が分かるのでそれをいれてログインします。ちなみに、CUIなので、画面はコマンドラインで入れていくことになります(笑)

ログイン後に、duコマンドを入れて、大きな容量を見つけたらそこを探っていきます。Linuxのファイル容量調べるコマンドメモなどが参考になります。Linux/容量の大きいディレクトリを見つけ出すとかもいいですね。

具体的には、

du wordpress/* -hs | sort -nr

みたいに入れていきます。これを入れると、容量がばばっと出てくるので、wordpressディレクトリ以下でwp-contentが1.1Gなどとでます。これがキャッシュが圧迫していたときは53Gとなっていたんですね(笑)

容量が大きいのが見つかったらそこから、

du wordpress/wp-content/* -hs | sort -nr

要はwp-contentが大きいからそこを再度探っていく、掘っていくみたいな感じですね。これによって、cacheフォルダが異様なサイズになってたのが判明したわけです。

無駄に、ラズベリーパイとかでSSH接続で遊んでたり、linuxで少しでもいいから遊んでいるのが無駄になりませんでしたね(笑)こういうのも慣れてないとゼッタイやらない気がしますが、アソビがてらやれたのが良かったですね。

おわりに

原因も分かりましたし、知識もついた、色々良かったということでめでたしめでたしですが、それはいいとして、ロリポップはプランダウンは出来ないので(笑)一杯Webサービスなどを出して、容量を使い倒したいなあと思いました。

WordPressを使っている方で、最近サーバの容量が圧迫しているぞという方に参考になれば幸いです。僕の場合はブログ運用してから1年前後なので、1年くらいでHeadCleaner放置で50GBは圧迫すると。そんな目安は不要ですが、心当たりがあればまずHead Cleanerのcaheフォルダを疑って見てください。

ちなみに、位置的には、Wordpressフォルダ以下、

wordpress/wp-content/cache/head-cleaner/js

みたいな感じであります。

タイトルとURLをコピーしました