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

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

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

2回答

16223閲覧

CentOSで容量がすぐいっぱいになります

4uyvan

総合スコア11

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

2クリップ

投稿2018/03/13 01:41

編集2018/03/13 04:08

前提・実現したいこと

GMO ALTUS Basicのクラウドサーバでサイト運営をしているのですが、構成は以下のようなものでした。

OSは「CentOS release 6.8」
ルートディスクが論理ボリュームで20G割当
サイトのHTML用のフォルダがデータディスクで40G割当
サイトのDB用のフォルダがデータディスクで40G割当

df で出力するとこうなります。

lang

1Filesystem Size Used Avail Use% Mounted on 2/dev/mapper/VolGroup-lv_root 20G 20G 8.8M 100% / 3tmpfs 3.4G 0 3.4G 0% /dev/shm 4/dev/**da1 477M 111M 341M 25% /boot 5/dev/**db1 40G 4.8G 33G 13% /var/lib/mysql  6/dev/**db2 40G 3.9G 34G 11% /home/***

発生している問題・エラーメッセージ

ルートディスクが数日の間に100%に達してしまいます。
「du -s -h /」で確認してみても11Gと出ます。
「du /」で細かく見てみましたが、特に容量を大きく取っているものはありませんでした。

試したこと

とにかく原因が分からなかったので、HDDを100G増設し、ルートディスクを拡張しました。

その後のdfはこうなりました。

lang

1Filesystem Size Used Avail Use% Mounted on 2/dev/mapper/VolGroup-lv_root 116G 110G 8.8M 100% / 3tmpfs 3.4G 0 3.4G 0% /dev/shm 4/dev/**da1 477M 111M 341M 25% /boot 5/dev/**db1 40G 4.8G 33G 13% /var/lib/mysql 6/dev/**db2 40G 3.9G 34G 11% /home/***

それでも数日でルートディスクが100%に達してしまいました。
サイトのアクセスは1日7000PVほどですので、ログファイルもそんなに容量は食っておりません。

何が原因で容量がいっぱいになるのか、またなぜduコマンドで確認できないのかが不明で困っております。
どなたがお知恵を拝借できましたら幸いです。

宜しくお願い致します。


追記です
dfコマンドで出た結果をほぼそのまま貼り付けました。(一部****にしております)

lang

1[root@****** /]# df 2Filesystem 1K-blocks Used Available Use% Mounted on 3/dev/mapper/VolGroup-lv_root 4 121185764 115020516 8808 100% / 5tmpfs 3498876 0 3498876 0% /dev/shm 6/dev/***a1 487652 113145 348907 25% /boot 7/dev/***b1 41140432 4941044 34102908 13% /var/lib/mysql 8/dev/***b2 41163788 4005820 35060284 11% /home/****

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/03/13 01:44

100%になった、とはどういう方法でそれを確認したんでしょうか
4uyvan

2018/03/13 03:57

ご回答ありがとうございます。df コマンドで確認致しました。
y_waiwai

2018/03/13 04:02

それじゃ、そのdfコマンドで出た結果をそのままコピペして質問文に追加してください
y_waiwai

2018/03/13 04:04

回答のやり取り見てると、dfコマンドの読み方が間違ってるとしか。。w
4uyvan

2018/03/13 04:09

dfコマンドの結果を貼り付けてみました。これでいかがでしょうか?宜しくお願い致します。
guest

回答2

0

ベストアンサー

duコマンドは隠しファイル(ドットから始まるファイル)は参照されなかったはずです。

du -sh /* /.[^.]* | sort -rn

これでデータを再取得してみてください

投稿2018/03/13 01:51

k-nishiyama

総合スコア240

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazto

2018/03/13 02:00 編集

試してみましたが、普通にリストされました! バージョンの違いでしょうかね…? [vagrant@ip-10-0-2-15 ~]$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [vagrant@ip-10-0-2-15 ~]$ du --max-depth=1 4 ./.ssh 297244 ./.rbenv 0 ./.pki 3764 ./.gem 19216 ./.bundle 364 ./work 4 ./.config 320624 .
k-nishiyama

2018/03/13 02:00

私が提示したコマンドと違うきがします・・・
kazto

2018/03/13 02:02

つまるところ、色々指定つけなくてもドットつきディレクトリもリストしてくれますよ、というのが私の主張です。
k-nishiyama

2018/03/13 02:02

[root@sv conf.d]# du -sh /* /.[^.]* | sort -rn 676M /lib 394M /opt 298M /root 282M /home 174M /boot 168K /dev 92K /tmp 40M /etc 33M /lib64 19M /sbin 16K /lost+found 8.0M /bin 4.0K /srv 4.0K /selinux 4.0K /net 4.0K /mnt 4.0K /misc 4.0K /media 4.0K /cgroup 3.7G /usr 3.3G /var 0 /sys 0 /proc 0 /.readahead_collect 0 /.autorelabel 0 /.autofsck
k-nishiyama

2018/03/13 02:03

[root@sv conf.d]# du -sh /* | sort -rn 676M /lib 394M /opt 298M /root 282M /home 174M /boot 168K /dev 92K /tmp 40M /etc 33M /lib64 19M /sbin 16K /lost+found 8.0M /bin 4.0K /srv 4.0K /selinux 4.0K /net 4.0K /mnt 4.0K /misc 4.0K /media 4.0K /cgroup 3.7G /usr 3.3G /var 0 /sys 0 /proc
kazto

2018/03/13 02:06

おお、動作が違う。 後学のためにお教えください。 そちらのOS、ディストロは何でしょうか。
k-nishiyama

2018/03/13 02:06

少なくともCentOS6環境において、質問者様の実施したduコマンド(du -s -h /)では隠しファイルは集計に含まれないはずですよ、
k-nishiyama

2018/03/13 02:08

# cat /etc/issue CentOS release 6.9 (Final) 今回使ったテスト環境はこちらですね。 他にもCentOS5~CentOS7、同様のRedHatやその他Solarisもありますが・・・そこまではまだ確認してません。
kazto

2018/03/13 02:12

上記の通り、当方CentOS7系ですので、6と7で変わった感じですかね。 ありがとうございます。勉強になりました。
k-nishiyama

2018/03/13 02:19 編集

試しに私のCentOS7環境でduコマンドを試しましたが、やはり隠しファイルは集計されませんでした。 ちょっと気になりますが・・・とりあえずは質問者様の結果が優先ですね : )
k-nishiyama

2018/03/13 02:29

すみません。 もしかしたら「*」の差かもしれません。
kazto

2018/03/13 02:33

あ、単にシェルの展開の問題か。 であれば確かに「*」はドットつきに展開されませんから、リストされませんね。単純な話だった(笑)
k-nishiyama

2018/03/13 02:35 編集

人様の質問に対する回答で試行錯誤 笑 だとしたら私の回答は今回合致しなさそうですねー。うーむむ。
k-nishiyama

2018/03/13 02:55 編集

(単純に "プロセスが掴んでて再起動したら解消する類のアレ" かもしれませんね) lsof | grep dele で、ファイルは削除済みだけどプロセスが掴んで離さないファイルがわかるかもしれません。
4uyvan

2018/03/13 03:56 編集

早速のご助言ありがとうございます。 このような結果となりました。 [root@******* /]# du -sh /* /.[^.]* | sort -rn du: cannot access `/proc/18752/task/18752/fd/4': No such file or directory du: cannot access `/proc/18752/task/18752/fdinfo/4': No such file or directory du: cannot access `/proc/18752/fd/4': No such file or directory du: cannot access `/proc/18752/fdinfo/4': No such file or directory 908M /usr 582M /lib 144K /dev 140K /tmp 109M /boot 76K /root 29M /etc 23M /lib64 16M /sbin 16K /lost+found 5.9M /bin 4.9G /var 4.0K /srv 4.0K /selinux 4.0K /opt 4.0K /mnt 4.0K /media 3.8G /home 0 /sys 0 /proc 0 /.autorelabel 0 /.autofsck やはり20~100Gも容量を取ってるようなところが見当たりません・・・。 「du: cannot access」となっているところに原因があるのでしょうか・・・。
4uyvan

2018/03/13 04:03

lsof | grep dele も試そうとしたのですが、lsofがインストールされておらず、追加しようにも容量が100%なので追加できない状態でした・・・。
k-nishiyama

2018/03/13 04:26

そうですか・・・代用コマンドが無いかはちょっと調べてみないとではありますが OS再起動が可能であり、プロセスが掴んでいることが原因ならソレで解消はするかもしれません。
4uyvan

2018/03/13 04:32 編集

消せるゴミファイル消して試しにyumで試したらインストールできました。 大変失礼しました。 lsof | grep dele で実行した結果は以下の通りです。 [root@***** /]# lsof | grep dele rsyslogd 1062 root 1w REG 253,0 15518533 657800 /var/log/secure (deleted) mysqld 17143 mysql 4u REG 253,0 0 392425 /tmp/ibwvBqpi (deleted) mysqld 17143 mysql 5u REG 253,0 0 397446 /tmp/ib1sZsif (deleted) mysqld 17143 mysql 6u REG 253,0 0 399075 /tmp/ibXTEvbc (deleted) mysqld 17143 mysql 7u REG 253,0 0 399087 /tmp/ibm0d248 (deleted) mysqld 17143 mysql 13u REG 253,0 0 399421 /tmp/ibx8WI55 (deleted) httpd 18312 root 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 18312 root 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19688 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19688 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19689 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19689 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19690 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19690 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19692 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19692 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19693 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19693 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19725 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19725 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19726 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19726 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19727 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19727 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19728 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19728 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19807 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19807 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19808 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19808 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19809 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19809 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19810 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19810 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19811 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19811 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19932 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19932 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19964 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19964 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19965 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19965 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 19966 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 19966 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 20163 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 20163 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) httpd 20216 apache 2w REG 253,0 113887864984 657792 /var/log/httpd/error_log (deleted) httpd 20216 apache 6w REG 253,0 1454257783 652934 /var/log/httpd/access_log (deleted) (deleted)ですごく容量が大きいので、おっしゃってる通り、プロセスが掴んでしまっているという解釈で良さそうでしょうか?
y_waiwai

2018/03/13 04:32

ツールも追加できないとなったら手詰まりやなー。。
4uyvan

2018/03/13 04:39 編集

すみません。 lsofを入れられました。 また、それで解決致しました。 おっしゃっている通りApacheがdeletedのログファイルの容量を沢山取っていたようで、Apacheを再起動することでHDDの容量も正常値に戻りました。 コチラの不勉強でお手数おかけして申し訳ありませんでした。 ありがとうございます!
k-nishiyama

2018/03/13 04:40

消えてるはずのログファイルが大量にありますね。 Apacheサービスの再起動は可能ですか? もしかしたら、ゾンビプロセスが残るかもしれないので # ps aux |grep httpd ※rootユーザとapacheユーザのプロセスが挙がっていることを確認。 # /etc/init.d/httpd stop # ps aux |grep httpd ※grep以外のhttpdプロセスが無いことを確認。あればkill。 # /etc/init.d/httpd start で、どうでしょう。
k-nishiyama

2018/03/13 04:41

あ、なおったんですね! よかったです~
hichon

2018/03/13 04:42 編集

lsofが無くても、これで確認できます。/proc/の直後がプロセスIDです。 $ sudo ls -l /proc/*/fd/*|grep deleted
y_waiwai

2018/03/13 04:45

おー、めでたい
4uyvan

2018/03/13 04:59 編集

お陰様で解決致しました。 ありがとうございます sudo ls -l /proc/*/fd/*|grep deleted でも試してみました。 同様の結果なんですね。 勉強になります。
guest

0

duで解析できない、というのが解せませんねぇ。。。
--max-depth=1オプションを追加して、ルートディレクトリからひとつづつ掘り下げていく、ではいかがでしょうか。

投稿2018/03/13 01:46

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

4uyvan

2018/03/13 04:00

ご回答ありがとうございます。 一応ルートから1階層下のディレクトリに関しては掘り下げては見たのですが、あまり良い情報は得られませんでした・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問