3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ディスクフルを解消する

Posted at

残念ながら、手元にディスクフルになった環境がないので、コマンドや手順だけを残す。

ディスク容量を確認する

df -h

-hで、単位がつくので見やすくなります。

そしてMounted onにあるパスを見て、フォルダを絞り込んでいきます。
大概、ディスクフルを起きて困惑してこの記事を見たとすれば、/でディスクフルが起きたときだと思いますが。

ディレクトリを絞り込んでいく

du -sh <ディレクトリパス>/*

-sは、サブフォルダを探索しないためのオプション。<ディレクトリパス>配下のファイルサイズを合計した結果のみを表示してくれます。
-hは、duと同じく、単位がつくようになります。

先に上げたdfでディスクフルになっているディレクトリを指定します。
ただ、/だと時間がかかったり、/procなど不要なディレクトリまで見てしまうため、ファイルサイズが大きくなりやすいフォルダに絞って最初は見たりしています。
例えば、/home``/usr``/var``/tmpあたりから見ています。

以前私がDockerコンテナによるディスクフルに出くわしたときは、

  1. du -sh /var
  2. du -sh /var/*
  3. du -sh /var/lib/*
  4. du -sh /var/lib/docker/*

の順で絞り込んで行きました。

また、どのディレクトリにサイズが大きいファイルがあったのか分かれば、原因分析もできますよね。
先のDockerの例では、コンテナの内部で巨大な一時ファイルを、ホスト上にマウントしていないフォルダに作ってしまったためでした。

対処

まず第一に、いらないファイルは、消しましょう。
思い切りが大事です。

いるファイルばかりと思ったなら、少しでもいらないファイルにしましょう。

  • 取っておく必要があるようなファイルは、バックアップサーバや手元に移して消す
  • gzip圧縮して消す
  • 障害発生時に出た過去ログやコアダンプを消す
  • PostgreSQLなどミドルウェアが出力したバイナリファイルは、過去のアーカイブログ(実は消せる)だったりもするので、ネットで裏とりして消す

一時対処は上記の通り消すしかないですが、頻発するようなら消す以外の手を打ちましょう。

  • ディスクを増やす(再サイジング、金で解決)
  • 自動化して消す(ログローテートとかのことです)
  • 念のためのそのファイル、そもそもいらなくね、という議論を始める
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?