web-dev-qa-db-ja.com

何百万ものファイルがあるハードディスク領域をどのように視覚化できますか?

ハードディスクは600ギガで、ほぼ満杯です。 18,501,765個のファイル(主に小さな1万9,000枚の画像)と7,142,132個のフォルダーがいっぱいです。正確にすべてのスペースがどこに行ったかを見つけることは非常に困難です。定期的なクリーンアップ手順では十分なスペースが空いていないため、このドライブ全体を見て、そこに何があり、何を移動または削除できるかを判断する必要があります。私たちはいくつかのアプリケーションを試しましたが、これまでのところ、それらは爆発するか、または完了するまでに驚くほど長い時間実行されました。

サーバー情報

  • オペレーティングシステム:Windows Server 2003
  • ファイルシステム:[〜#〜] ntfs [〜#〜]

解決

Space ObServer メモリをほとんど消費することなく、18,501,765個のファイルと7,142,132個のフォルダを読み取ることができました。これは主に、SQLバックエンドを使用してすべてのデータを格納していることが原因であると確信しています。残念ながら、すべての製品の中で最も高価で、サーバーあたり259.95ドルです。

試みられた解決策

調査中、私は有料と無料の両方のいくつかの異なるソリューションを試しました。みんなの参考のために、以下に試した商品のリストを用意しました。

フリーソフトウェア

有料ソフトウェア

アップデート

アップデート#1:分析しようとしているサーバーには2 GBのRAMがあり、私が試したほとんどの製品はファイル/フォルダ情報をメモリに保存しようとすると、18,501,765個のファイルと7,142,132個のフォルダがあり、すぐに不足する傾向があります。

アップデート#2:WinDirStatの開発者は、64ビットでコンパイルできることを伝えるのに十分関与しているようです。これにより、より多くのメモリを使用できますが、ディスクに永続化できない限り、それで十分かどうかはわかりません。

18
Nathan Palmer

あなたのOSがWindowsであると仮定します...

スライスする方法に関係なく、何百万ものファイルの集計には常に長い時間がかかり、ディスク自体のI/Oによって制限されます。 TreeSize Professional をお勧めします。または多分 SpaceObServer 。また、TreeSizeのフリーウェアバージョンを試すこともできます。

6
Wesley

間違いなく WinDirStat を試してください。各ファイルを、ファイルの種類ごとに色分けされた縮尺で描かれた長方形として描写することで、ディスクの使用状況を幻想的に視覚化します。ビジュアライゼーションのアイテムをクリックすると、ディレクトリツリーに表示されます。

標準の32ビットビルドは1,000万ファイルと2 GBに制限されていますRAM使用量ですが、ソースコードは64ビットアプリケーションとして正常にビルドされます。問題のサーバーが2GBのRAMは、この特定のケースでは問題になる可能性がありますが、そのような大量のファイルを持つほとんどのサーバーは、はるかに多くのRAMを備えています。

編集#1:何百万ものファイルを含む4TBボリュームでテストしたときに、WinDirStat Portableが約650万のファイルのインデックス作成後にクラッシュしたことを発見したことを後悔しています。ドライブに600万以上のファイルが含まれている場合、元の質問では機能しない可能性があります。

編集#2:WinDirStatのフルバージョンが1000万のファイルと1.9GBの使用でクラッシュする

編集#3:WinDirStat開発者と連絡を取り、(1)これはx86アーキテクチャのメモリ使用制限が原因であることに同意し、(2)エラーなしで64ビットとしてコンパイルできると述べました。よりすぐ。

編集#4:WinDirStatの64ビットビルドのテストは成功しました。 44分で、1140万のファイルのインデックスを作成し、2.7 GBのRAMを消費しました。

5
Skyhawk

私は定期的に FolderSizes を数百万のファイルが含まれる複数の1TBドライブで問題なく使用しています。

4
joeqwerty

私は通常Windowsユーザーではありませんが、Cygwinの存在を知っています。 :-)

それが十分に機能する場合、次のようなもの

du -m /your/path | sort -nr | head -n 50

またはおそらくCygwinで

du C:\ | sort -nr | head -n 50

とにかく、それらはあなたに50の最大のディレクトリ(メガバイトのサイズ)を印刷するはずです。

3
  1. cD \
  2. dir/s> out.txt
  3. poof!魔法が起こる;またはPerlハッカーが現れます
  4. 結果!

真剣に。 500万または600万のファイルでこれを実行しました。あなたが何を探しているのか正確にはわかりませんが、良いスクリプト言語はこれを使い果たしてしまいます。

3
SqlACID

TreeSize製品の+1、ただし...

「十分なスペースをクリーンアップしていない」という文章で、NTFS MFTの予約スペースが不足していませんか?ファイルシステムが最初に割り当てられたよりも多くのMFTスペースを取得する場合、通常のファイルスペースには戻されず、デフラグ操作では表示されません。

http://support.Microsoft.com/kb/174619

「比較的大きなファイルが少ないボリュームは最初に予約されていないスペースを使い果たしますが、比較的小さなファイルが多いボリュームは最初にMFTゾーンスペースを使い果たします。どちらの場合でも、MFTの断片化は、1つのリージョンまたはその他の領域がいっぱいになります。予約されていない領域がいっぱいになると、ユーザーファイルとディレクトリの領域は、割り当てのためのMFTと競合するMFTゾーンから割り当てられます。MFTゾーンがいっぱいになると、残りの領域から新しいMFTエントリ用の領域が割り当てられますディスクは再び他のファイルと競合します。」

3
AndyN

Spacemongerにいくつかの問題が見つかり、USBスティックから簡単に転送または実行できるユーティリティを探していました- Space Sniffer その点で非常に用途が広く、マルチテラバイトのボリュームを簡単に処理しました。

2
user49672

GetFoldersize をご覧ください

1
user9517

du -sはピンチで使用でき、必要なだけ実行されます。

Windowsでは SpaceMonger (または 古い無料バージョン )を使用します。 OSXでは Disk Inventory X を使用します。

1
ggutenberg

Mftテーブルに関して、元のオープンソースバージョンであるjkdefragは、mft領域のさまざまなカラーリングを含む非常に正確なディスクビューを提供したことを頭の後ろから覚えているようです。私は以前、mftのサイズと断片化の大まかな推定値としてこれを使用したと思います。

また、chdskを気にしません。

やってみませんか?

0
deploymonkey

私は Disk Usage Analyzer-Baobab をLinuxで使用しました。これは、Windowsサーバーのリモートスキャン機能を使用しています。それが限界なのかはわかりません。

Fedora LiveCD はバオバブを含みます。 LAN内の任意のコンピュータで起動します。

ビールやスピーチのように、すべて無料です。業務用にも。

0
Tometzky

http://www.freshney.org/xinorbis/

別の潜在的なオプション

0
Nate