VPSのストレージ容量が圧迫されたため、ディスク使用量を調査できるncduを導入して原因を特定しました。WordPressプラグインによるキャッシュファイルの肥大化が原因と判明し、キャッシュ消去と設定調整によって正常な空き容量へ回復させました。
CUI環境においてncduはフォルダごとの占有容量を直感的に確認できるツールです。キー操作で簡単にディレクトリ移動やファイルの削除が行えるため、リモートサーバーでの効率的なストレージ管理に役立ちます。
いつの間にかストレージが90%以上使われている
さくらVPSにdebian GNU/Linuxを最小インストールして、必要なLAMP環境を整えてWordPressを動かしていますが、気がついてみるとストレージの空きが殆無くなってしまっていました。せっかくのVPSなので、たまに動画ファイルをアップロードしてffpmegを使って簡単なエンコード処理をしたりするのですが、空きが無くなってしまうとこれも出来なくなってしまうから困りものです。
一番怪しいのはサイトのレスポンスを改善するキャッシュする高速化機能です。キャッシュファイルがどんどん溜まってしまうと肥大する一方なので一番怪しいです。どこのフォルダが原因なのかを調べるため、ncduをインストールすることにしました。
~$ sudo apt update
~$ sudo apt install -y ncdu
ncduを実行します。(/から調べる場合はsudoで実行する必要あり)
~$ ncdu /home/sasapurin/wp-mypace/
視覚的にわかりやすい診断結果が表示されました。/wp-contentが73.3GiBも食ってます。こかから絞り込んでいけるので分かりやすいです。選んでENTERで下層に潜り込んでいきます。
--- /home/sasapurin/wp-mypace --------------------------------------------------------
73.3 GiB [############] /wp-content
89.9 MiB [ ] /wp-includes
10.6 MiB [ ] /wp-admin
512.0 KiB [ ] .htaccess
52.0 KiB [ ] wp-login.php
36.0 KiB [ ] wp-signup.php
36.0 KiB [ ] wp-settings.php
20.0 KiB [ ] license.txt
16.0 KiB [ ] .wp-config.php.swp
12.0 KiB [ ] wp-mail.php
8.0 KiB [ ] wp-activate.php
8.0 KiB [ ] readme.html
8.0 KiB [ ] wp-cron.php
8.0 KiB [ ] wp-trackback.php
8.0 KiB [ ] .htaccess.cocoon
8.0 KiB [ ] wp-config.php
e 4.0 KiB [ ] /.well-known
4.0 KiB [ ] wp-load.php
4.0 KiB [ ] wp-config-sample.php
4.0 KiB [ ] xmlrpc.php
4.0 KiB [ ] wp-links-opml.php
4.0 KiB [ ] wp-comments-post.php
4.0 KiB [ ] index.php
4.0 KiB [ ] wp-blog-header.phpCode language: PHP (php)
ncduはキャラクターベースのUIですが視覚的にわかりやすく、このようにしてフォルダーに入り込みながら専有している容量を調べていけるので便利です。
終了するには”q”をタイプすると終了します。
やはりwpo-cacheが肥大していて70GiB以上食っていました。wpo-minifyが肥大しまくっています。これは明らかに異常なので一番怪しいプラグイン「WP-Optimize」を弄って暴走を止めます。一旦キャッシュクリアしてクリーニングすることも必要です。
--- /home/sasapurin/wp-mypace/wp-content/cache ---------------------------------------
/..
360.3 MiB [############] /wpo-cache
184.0 KiB [ ] /page
76.0 KiB [ ] /page_enhanced
e 72.0 KiB [ ] /object
20.0 KiB [ ] /wpo-minify
16.0 KiB [ ] /stats
e 4.0 KiB [ ] /tmp
0.0 B [ ] index.html
Code language: PHP (php)
通常レベルに回復したと思われますが、しばらく様子見をしなくてはいけなさそうです。
--- /home/sasapurin/wp-mypace --------------------------------------------------------
2.1 GiB [############] /wp-content
89.9 MiB [ ] /wp-includes
10.6 MiB [ ] /wp-admin
504.0 KiB [ ] .htaccess
52.0 KiB [ ] wp-login.php
36.0 KiB [ ] wp-signup.php
36.0 KiB [ ] wp-settings.php
20.0 KiB [ ] license.txt
16.0 KiB [ ] .wp-config.php.swp
12.0 KiB [ ] wp-mail.php
8.0 KiB [ ] wp-activate.php
8.0 KiB [ ] readme.html
8.0 KiB [ ] wp-cron.php
8.0 KiB [ ] wp-trackback.php
8.0 KiB [ ] .htaccess.cocoon
8.0 KiB [ ] wp-config.php
e 4.0 KiB [ ] /.well-known
4.0 KiB [ ] wp-load.php
4.0 KiB [ ] wp-config-sample.php
4.0 KiB [ ] xmlrpc.php
4.0 KiB [ ] wp-links-opml.php
4.0 KiB [ ] wp-comments-post.php
4.0 KiB [ ] index.php
4.0 KiB [ ] wp-blog-header.phpCode language: PHP (php)
ストレージを喰らいまくっている原因を追求するには、ncduコマンド(アプリ)はとても便利ですね。
ncduの使い方
Linuxサーバーの運営管理のために便利なncduを活用できそうです。備忘録がてら要点のみ残しておきます。
操作キー
- ↑↓キー:選択肢の移動
- ENTERキー:フォルダの中に入る
- dキー:選択したフォルダ/ファイルを削除(確認が表示される)
- qキー:ncduを終了
行頭のプレフィックス
- e:Enpty(空)
- @:Symlink/Socket
- <:Excluded
- !:Error
- .:Other
- H:Hardlink
今回の調査について
ncduを使うことでSSHでの接続(コマンドライン操作)でもとても簡単に調査が行えました。このVPSはどうせSSHリモートだしVPSのスペックも一番低い(安価)プランにしているのでGUI環境をインストールしていません。
正直いうと、コマンド操作だけで調べていくはしんどいところ、ncduのおかげでサクッと原因を突き詰めていくことが出来ました。便利なツールは使わないと損ですね。

GUI環境を備えたLinux環境の多くはディスクスペースの占有状況をグラフ等で視覚的にレポートしてくれる便利なアプリ(例:上図の様なディスク使用量アナライザ)が用意されていますが、CUIでも見方は違えど視覚的な情報収集を諦める必要はなさそうです。


コメント