質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.96%

GMO ALTUS 仮想サーバCentOS6.5でInodeがフルになった時の対処法について

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,518

chapter

score 34

いつもお世話になっております。

プログラミングがメインのため、インフラ関連の知識はあまりないので、
的はずれなことを書いてしまうかも知れませんが、ご容赦ください。

標記の通り、現在GMO ALUTSで仮想サーバ(CentOS6.5)を構築して、
システムを動かしております。

muninという負荷監視ツールを入れているのですが、
そこでしばらく前から「Inode usage in percent」が非常に高い数値に
なっていて、警告が表示されていました。

そこで、ディスク関連のコマンドで調べたところ、
以下のような結果となりました。

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       18G  8.6G  7.8G  53% /
tmpfs                  13G     0   13G   0% /dev/shm
/dev/xvda1            477M  109M  344M  24% /boot
/dev/xvdb             296G   90G  191G  33% /var/www/html
# df -i
Filesystem             Inodes   IUsed    IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root
                      1150560 1138693    11867   99% /
tmpfs                 3190460       1  3190459    1% /dev/shm
/dev/xvda1             128016      62   127954    1% /boot
/dev/xvdb            19660800 3524897 16135903   18% /var/www/html

容量自体はまだ余裕があるものの、Inodeが99%となっているようで、
こちらが警告となっていると思われます。

ただ、このInodeというものはネットで検索して何となく分かったものの、
今いっぱいになってしまっている「/dev/mapper/VolGroup-lv_root」
というのが、よく分かっていない状態です。

GMO ALTUSで仮想サーバを構築する際、デフォルトで用意されている
ROOT DISKになると思うのですが、開発したシステムのスクリプトや
各種ファイルは別途ディスクを作成して、マウントしており
そちらが「/dev/xvdb」になります。

システムでファイルの書き込みが多いのであれば、「/dev/xvdb」の方の
Inodeがいっぱいになると思われるので、ファイルを削除したり
何らかの対処はできる気がするのですが、

「/dev/mapper/VolGroup-lv_root」はどういう時にファイルが書き込まれて、
なぜいっぱいになってしまったのか、原因もよく分かっていない状態です。

つきましては、Inodeがいっぱいになってしまう原因の調べ方や対処法など、
何かアドバイスいただけると幸いでございます。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

ファイルシステムは Ext4 と想定して回答します。
i-node はファイルやディレクトリが作成されたときに割り当てられる番号ですので、/ (ルートファイルシステム)に(小さな)ファイルやディレクトリがたくさん作られているのだと思います。

find コマンドなどで最近作成されたファイル、ディレクトリを探すと何かわかるかもしれません。
一時ファイルとか、セッションを保持するファイルなどが消えずに残っているとか。
ログファイルを短時間でローテートしているとか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/16 19:42

    TaichiYanagiyaさん、ご回答ありがとうございます。

    ファイルシステムは Ext4 で間違いないです。
    記載不足で失礼いたしました。

    ログファイルに関しては、ウェブサーバはNginxを使用していて、
    設定はDailyで7日間保持する形なので、
    ファイル数が大量に増える原因ではなさそうです。

    他のログを含めて、ファイル数をチェックしてみましたが、
    以下のように少なかったです。
    -------------------------------
    # find /var/log/ -type f | wc -l
    271
    -------------------------------

    また、一時ファイルやセッションデータも以下のように少なかったです。
    -------------------------------
    # find /tmp/ -type f | wc -l
    86

    # find /var/lib/php/session -type f | wc -l
    26
    -------------------------------

    最近作成されたファイルの調べ方がよく分からなかったのですが、
    検索して見つかった方法でチェックしたところ、

    -------------------------------
    # find / -printf "%M %n %u %g %k %TY-%Tm-%Td %TH:%TM:%TS %p\n" | sort -r -k6,7

    find: `/proc/27928': No such file or directory
    find: `/proc/27961': No such file or directory
    find: `/proc/27970': No such file or directory
    find: `/proc/27982': No such file or directory
    find: `/proc/28488': No such file or directory
    find: `/proc/28518': No such file or directory
    find: `/proc/28524': No such file or directory
    find: `/proc/28533': No such file or directory
    find: `/proc/30298': No such file or directory
    find: `/proc/30688': No such file or directory
    find: `/proc/30766': No such file or directory
    find: `/proc/30773': No such file or directory
    find: `/proc/30776': No such file or directory
    find: `/proc/31797/task/31797/fd/5': No such file or directory
    find: `/proc/31797/task/31797/fdinfo/5': No such file or directory
    find: `/proc/31797/fd/5': No such file or directory
    find: `/proc/31797/fdinfo/5': No such file or directory
    find: `/proc/31854': No such file or directory

    【以下略】
    -------------------------------

    このような感じで、プロセスディレクトリの情報が表示されて、
    存在しないというエラーがずらっと並んでいました。

    この状態がどのような問題あるのか理解していないのですが、
    上記の結果から何か分かることがございますでしょうか?

    キャンセル

  • 2016/05/16 22:55

    /proc, /sys は擬似ファイルシステムなので除外してください。
    例えば、30分以内に作成されたファイル、ディレクトリを探すには、「find / -xdev -cmin -30」とします。
    ただし、急に増えたのではなく、じわじわと増えた場合は「-ctime」では見つけられないかもしれません。
    ディレクトリも i-node を使うので「find ディレクトリ \( -type f -o -type d \)」で探した方がいいと思います。

    キャンセル

  • 2016/05/16 23:30

    TaichiYanagiyaさん、ありがとうございます。

    探し方について教えていただき、非常に参考になりました。

    その後、あやしそうなディレクトリのファイル数をチェックしていったところ、
    メールのキューが大量に溜まっていたようでした。

    /var/spool/exim/input

    このディレクトリに大量にファイルがありました。

    mailq でチェックしてみたところ、
    149d とかなり前からずっと溜まり続けていたようです。

    中身を見てみたところ、CRON処理のエラー通知が大量に
    溜まっていたようなので、これから見直してみます。

    Inodeがいっぱいになるというトラブルは初めてのため、
    どこから見ていいのか全く手探り状態だったのですが、
    TaichiYanagiyaさんのアドバイスのお陰で、
    何とか原因が分かりました。

    この度はありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.96%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる