Webサーバーの容量不足問題と解決法

HUGOサイト構築メモ

LinuxサーバでHUGOベースのサイトを運営していますが、ある日突然SSH接続するVSCordが接続エラーを出し、ブログの執筆ができなくなりました。容量不足とディスクの空きスペース確保に対する対応をとったのでその時のメモになります。

問題

  • LinuxPCをApacheを用いてWebサーバー化。
  • Linux内にHUGOの環境を展開。
  • 毎回ビルドしながらブログを投稿。
  • 編集は個人PCからVSCordを用いて執筆。
  • 執筆したデータはSSH接続を経由してアップ保存。
  • 執筆後はビルドしてブログをアップ。
  • ある日突然、VSCordにてエラーコードが現れる。
  • Webサーバの容量が枯渇していることによる接続拒否状態が確認された。
VSCordで表示されたエラーコード
リモート拡張ホスト サーバーへの接続に失敗しました (エラー: WrappedError(WrappedError { message: "error unpacking /home /kurimoto/.vscode-server/cli/serv ers/Stable-f1e16e1e6214d7c44d078b 1f0607b2388f29d729.staging/server /extensions/css-language-features /server/dist/node/cssServerMain.j s", original: "Custom { kind: Sto rageFull, error: TarError { desc: \"failed to unpack vscode-server -linux-x64/extensions/css-langua ge-features/server/dist/node/css ServerMain.js into /home/kurimot o/.vscode-server/cli/servers/Sta ble-f1e16e1e6214d7c44d078b1f0607 b2388f29d729.staging/server/exte nsions/css-language-features/ser ver/dist/node/cssServerMain.js\" , io: Os { code: 28, kind: Stora geFull, message: \"No space left on device\" } } }" }))

解決対応

原因の調査

  • まずはVSCordで出入りができない状態なので、RDP経由でWebサーバの状況を確認。
入力したコマンド
sudo du -ah / 2>/dev/null | sort -rh | head -n 20
  • このコマンドを使ってWebサーバの中で容量食ってるランキング20を表示する。
コマンド実行後に表示された内容
29G / 22G /home/kurimototyann 22G /home

20G /home/kurimototyann/.xsession-errors

5.7G /usr 3.5G /usr/lib 1.9G /usr/share 1.4G /usr/lib/x86_64-linux-gnu 1.2G /home/kurimototyann/.vscode-server 1.1G /var 804M /home/kurimototyann/.vscode-server/bin 788M /usr/lib/modules 403M /var/www 394M /usr/lib/modules/6.1.0-13-amd64 394M /usr/lib/modules/6.1.0-10-amd64 392M /usr/share/icons 389M /usr/lib/modules/6.1.0-13-amd64/kernel 389M /usr/lib/modules/6.1.0-10-amd64/kernel 358M /var/www/html 337M /usr/share/locale
  • 出力されたファイル一覧を見ると、「20G /home/kurimototyann/.xsession-errors」という謎なファイルを発見。
  • X…ツイッターではなくおそらくXサーバーのことだろうかと断定。
  • とはいえ、このXのエラーファイルを見ても大した情報は記載されていない。
  • とのことなので…
入力したコマンド
sudo rm /home/kurimototyann/.xsession-errors
  • コマンドでxのログファイルを抹消。
コマンド実行後に表示された内容
8.5G / 5.7G /usr 3.5G /usr/lib 1.9G /usr/share 1.6G /home/kurimoto 1.6G /home 1.4G /usr/lib/x86_64-linux-gnu 1.2G /home/kurimoto/.vscode-server 1.1G /var 804M /home/kurimoto/.vscode-server/bin 788M /usr/lib/modules 403M /var/www 394M /usr/lib/modules/6.1.0-13-amd64 394M /usr/lib/modules/6.1.0-10-amd64 392M /usr/share/icons 389M /usr/lib/modules/6.1.0-13-amd64/kernel 389M /usr/lib/modules/6.1.0-10-amd64/kernel 358M /var/www/html 337M /usr/share/locale 328M /usr/lib/go-1.19
  • これで20GBも食いつぶしていたエラーファイルの抹消が完了した。

解決しない

  • 解決したと思い、VSCordでSSH接続をもう一度試みるものの、同じエラーが出てつながらない。
  • 再びRDP接続し、ファイルビュアを見てみる。
  • 相変わらず空き容量が30Mb程度しか開いていないことを確認。
  • 一方、ターミナルで空き容量を見ると十分に空き容量は確保されていると出ている。
  • サーバーの再起動を何度も試みたが、改善しない。
  • 原因不明なまま仕事だったので出勤。

解決

  • 仕事を終えて帰宅。
  • 相変わらず、VSCordからSSH接続はできない。
  • ダメもとでサーバーをもう一度再起動。
  • 復活。
  • Webサーバ上のファイルビュアーでも空き容量20GBと表示されていることを確認。
  • VSCordでも問題なくSSH接続ができた。
comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。