5

centos 5.5 を実行している vps スライスがあります。15 ギガのディスク容量があるはずですが、df によると、ディスク容量の使用量が 2 倍になるようです。

du -skh */ で root として実行すると、次のようになります。

[root@yardvps1 /]# du -skh *
0       aquota.group
0       aquota.user
5.2M    bin
4.0K    boot
4.0K    dev
4.9M    etc
2.5G    home
12M     lib
14M     lib64
4.0K    media
4.0K    mnt
299M    opt
0       proc
692K    root
23M     sbin
4.0K    selinux
4.0K    srv
0       sys
48K     tmp
2.0G    usr
121M    var

これは私がマシンにアップロードしたものと一致しており、合計すると約 5 ギガになります。

しかし、実行すると次のdfようになります:

[root@yardvps1 /]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/simfs            15728640  11659048   4069592  75% /
none                    262144         4    262140   1% /dev

すでにほぼ 12 ギグを使用していることがわかります。

この不一致の原因とそれについて私にできることはありますか? サーバーを 15 ギガに基づいて計画しましたが、現在は基本的に約 7 ギガしか搭載できません。

ありがとう。

4

3 に答える 3

11

この影響の最も一般的な原因は、削除された開いているファイルです。

カーネルは、削除時に使用されていない場合にのみ、削除されたファイルのディスク ブロックを解放します。それ以外の場合は、ファイルが閉じられるか、システムが再起動されるまで延期されます。

一時ファイルが残らないようにする一般的な Unix のトリックは次のとおりです。

  • プロセスが一時ファイルを作成して開く

  • 開いているファイル記述子を保持したまま、プロセスはファイルのリンクを解除 (つまり、削除) します。

  • プロセスは通常、ファイル記述子を使用してファイルの読み取りと書き込みを行います

  • プロセスは完了するとファイル記述子を閉じ、カーネルはスペースを解放します

  • プロセス (またはシステム) が予期せず終了した場合、一時ファイルは既に削除されているため、クリーンアップは必要ありません。

  • おまけとして、ファイルを削除すると、一時ファイルを作成するときに名前の競合が発生する可能性が減り、実行中のプロセスがさらにわかりにくくなります (つまり、root ユーザー以外のユーザー)。

この動作により、プロセスが突然足元から引き出されたファイルを処理する必要がなくなり、ファイルを削除するためにプロセスが互いに相談する必要がなくなります。ただし、Windows システムでは通常、使用中のファイルを削除することは許可されていないため、これは予期しない動作です。

コマンドをルートとして実行すると、開いているすべてのlsofファイルが表示され、削除された削除済みファイルが明確に示されます。

# lsof 2>/dev/null | grep deleted
bootlogd   2024       root    1w      REG                9,3         58     917506 /tmp/init.0W2ARi (deleted)
bootlogd   2024       root    2w      REG                9,3         58     917506 /tmp/init.0W2ARi (deleted)

問題のあるプロセスを停止して再起動するか、サーバーを再起動するだけで、この問題は解決します。

削除されたファイルは、たとえばマウントされたファイルシステム イメージの場合、カーネルによって開かれたままになる可能性もあります。この場合、ファイルシステムをアンマウントするか、サーバーを再起動するとうまくいくはずです。

あなたの場合、「不足している」スペースのサイズから判断すると、VPSのセットアップに使用したファイルへの参照を探します。たとえば、インストール後に削除したCentos DVDイメージです。

于 2010-12-12T23:10:50.137 に答える
3

あなたの問題ではないようですが、私が遭遇した別のケースは、既存のファイルの「上に」パーティションをマウントする場合です。

これを行うと、マウント先パーティション (マウント ポイント) のディレクトリに存在する既存のファイルが、マウントされたパーティションから効果的に隠されます。

修正するには: マウントされたパーティションで開いているファイルを含むすべてのプロセスを停止し、パーティションをアンマウントし、マウント ポイント ディレクトリに現在表示されているすべてのファイルを見つけて移動/削除します。

于 2013-04-24T10:59:46.187 に答える
2

FreeBSD サーバーでも同じ問題が発生しました。再起動が役立ちました。

于 2010-12-12T22:40:45.543 に答える