Comment visualiser l'espace du disque dur avec des millions de fichiers?

18

Nous avons un disque dur de 600 Go et presque plein. Il a été rempli de 18 501 765 fichiers (principalement de petites images de 19 000 images) et de 7 142 132 dossiers. Il est très difficile de savoir où exactement tout l'espace est allé aussi. Nos procédures de nettoyage régulières ne libèrent pas suffisamment d'espace, ce qui signifie que nous devons examiner ce lecteur dans son ensemble et déterminer ce qui existe et ce qui peut être déplacé ou supprimé. Nous avons essayé plusieurs applications et jusqu'à présent, elles ont explosé ou ont simplement fonctionné pendant une durée incroyable.

Informations sur le serveur

  • Système d'exploitation: Windows Server 2003
  • Système de fichiers: NTFS

Solution

Space ObServer a pu lire 18 501 765 fichiers et 7 142 132 dossiers sans occuper pratiquement aucune mémoire. Je suis sûr que cela est principalement dû au fait qu'il utilise un backend SQL pour stocker toutes les données. C'est malheureusement le plus cher de tous les produits à 259,95 $ par serveur.

Solutions tentées

Au cours de mes recherches, j'ai essayé plusieurs solutions différentes, payantes et gratuites. J'ai gardé une liste des produits que j'ai essayés ci-dessous pour l'information de chacun.

Logiciel gratuit

Logiciel payant

Mises à jour

Mise à jour # 1 : Le serveur que j'essaie d'analyser a 2 Go de RAM et la plupart des produits que j'essaie semblent essayer de conserver les informations sur les fichiers / dossiers en mémoire. Cela a tendance à s'épuiser beaucoup trop rapidement avec 18 501 765 fichiers et 7 142 132 dossiers.

Mise à jour # 2 : Il semble que les développeurs de WinDirStat se soient suffisamment impliqués pour nous dire qu'il peut compiler sous 64 bits. Cela lui donne plus de mémoire pour travailler, mais je ne suis pas sûr que cela suffira, à moins qu'ils ne persistent sur le disque.

Nathan Palmer
la source
Quel système d'exploitation?
Wesley
C'est Windows Server 2003. J'ai édité le message pour le montrer maintenant.
Nathan Palmer
Est-ce que certains de ces logiciels sont entièrement gratuits, partagiciels ou open source?
Maslow
Ravi de vous de nous mettre à jour de cette manière sur ce qui a échoué, en cours d'exécution et en attente. Me donne de bonnes idées.
Wesley
2
Aucun problème. J'ai pensé que ce serait une bonne information car j'ai l'impression que nous avons affaire à un nombre de fichiers avec lesquels les entreprises ne travaillent généralement pas quotidiennement. De plus, je viens de mettre à jour les catégories gratuites et payantes.
Nathan Palmer

Réponses:

6

En supposant que votre système d'exploitation est Windows ...

Quoi qu'il en soit, la tabulation de millions de fichiers prendra toujours beaucoup de temps et sera limitée par les E / S du disque lui-même. Je recommande TreeSize Professional . Ou peut-être SpaceObServer . Vous pouvez également essayer la version gratuite de TreeSize.

Wesley
la source
Je suis d'accord. Mais ces deux produits que je n'ai pas essayés alors je vais y jeter un œil.
Nathan Palmer
5

Essayez certainement WinDirStat : il donne une visualisation fantastique de l'utilisation du disque en décrivant chaque fichier comme un rectangle dessiné à l'échelle, codé par couleur par type de fichier. Cliquez sur n'importe quel élément de la visualisation et vous le verrez dans l'arborescence des répertoires.

La version standard 32 bits est limitée à 10 millions de fichiers et à 2 Go de RAM, mais le code source sera correctement généré en tant qu'application 64 bits. Le fait que le serveur en question ne dispose que de 2 Go de RAM peut être problématique dans ce cas spécifique, mais la plupart des serveurs avec un si grand nombre de fichiers auront beaucoup plus de RAM.

Edit # 1: Je regrette d'avoir découvert que, lors d'un test sur un volume de 4 To contenant des millions de fichiers, WinDirStat Portable s'est écrasé après avoir indexé environ 6,5 millions de fichiers. Cela peut ne pas fonctionner pour la question d'origine si le lecteur contient plus de 6 millions de fichiers.

Edit # 2: la version complète de WinDirStat plante à 10 millions de fichiers et 1,9 Go utilisés

Edit # 3: J'ai pris contact avec les développeurs WinDirStat et: (1) ils conviennent que cela a été causé par les limitations d'utilisation de la mémoire de l'architecture x86, et (2) ont mentionné qu'il peut être compilé en 64 bits sans erreurs. Plus à venir.

Édition n ° 4: le test d'une version 64 bits de WinDirStat a réussi. En 44 minutes, il a indexé 11,4 millions de fichiers et consommé 2,7 Go de RAM.

Skyhawk
la source
Il pourrait être utile d'essayer la version régulière, car il est possible que l'environnement portable ait créé une restriction inattendue. Je ne suis pas en mesure de le tester moi-même. windirstat.info
John Gardeniers
En effet, la version régulière meurt à plus de 10 millions de fichiers et à 1,9 Go de RAM. Je soupçonne qu'il n'est pas en mesure d'allouer> 2 Go. Je suis surpris qu'il utilise autant de RAM (près de 200 octets par fichier comptabilisés), mais, encore une fois, j'ai grandi à une époque où les octets individuels étaient beaucoup plus précieux qu'aujourd'hui ...
Skyhawk
J'utilise beaucoup WinDirStat. Malheureusement, cela ne suffit pas lorsque vous entrez dans un grand nombre de fichiers.
Nathan Palmer
Je serais intéressé d'entendre si les développeurs de WinDirStat reviennent avec quelque chose. La RAM va être une contrainte pour moi en 32 bits ou 64 bits.
Nathan Palmer
1
Il n'y a pas de build officiel, mais je peux vous en envoyer un non officiel - évidemment, il serait difficile de rouler le vôtre si vous n'avez pas Visual Studio! ([email protected] m'atteint)
Skyhawk
4

J'utilise régulièrement FolderSizes sur plusieurs lecteurs de 1 To avec plusieurs millions de fichiers sans aucun problème.

joeqwerty
la source
Impressionnant. Je ne connaissais pas celui-là.
Wesley
Génial. Je vais essayer.
Nathan Palmer
3

+1 pour les produits TreeSize, mais ...

Votre phrase à propos de "ne pas nettoyer suffisamment d'espace" me fait me demander: auriez-vous pu manquer d'espace réservé NTFS MFT? Si le système de fichiers récupère plus d'espace MFT que celui initialement alloué, il n'est pas renvoyé à l'espace fichier normal et n'est pas affiché dans les opérations de défragmentation.

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

"Les volumes contenant un petit nombre de fichiers relativement volumineux épuisent d'abord l'espace non réservé, tandis que les volumes contenant un grand nombre de fichiers relativement petits épuisent d'abord l'espace de la zone MFT. Dans les deux cas, la fragmentation de la MFT commence à se produire lorsqu'une région ou autre devient plein. Si l'espace non réservé devient plein, l'espace pour les fichiers et répertoires utilisateur commence à être alloué à partir de la zone MFT en concurrence avec le MFT pour l'allocation. Si la zone MFT devient pleine, l'espace pour les nouvelles entrées MFT est alloué à partir du reste de le disque, à nouveau en concurrence avec d'autres fichiers. "

AndyN
la source
Cela ressemble à quelque chose de bon à vérifier. Malheureusement, nous ne pouvons pas voir la taille MFT car la défragmentation ne sera pas analysée sans CHKDSK et CHKDSK échoue actuellement avec "Une erreur non spécifiée s'est produite."
Nathan Palmer
3
  1. cd \
  2. dir / s> out.txt
  3. pouf! La magie opère; ou un pirate perl se présente
  4. Résultats!

Sérieusement. Je l'ai fait avec 5 ou 6 millions de fichiers; Je ne sais pas exactement ce que vous cherchez, mais un bon langage de script en mangera.

SqlACID
la source
Soo ... que se passe-t-il à l'étape 3 ... en supposant qu'un pirate perl n'apparaît pas?
Nathan Palmer
Pouvez-vous publier plus d'informations sur ce dont vous avez besoin? Fichiers les plus volumineux? Les plus grands répertoires? Avez-vous besoin d'informations sur la date et l'heure? Est-ce un besoin ponctuel ou récurrent?
SqlACID
Pour l'instant, c'est une fois. J'ai besoin de savoir quels répertoires sont les plus grands (dir + enfants) mais je devrai rentrer quelques répertoires avant que ces informations ne soient valides. Ensuite, je devrai avoir une ventilation des fichiers par date afin que je puisse voir les fichiers récents vs anciens.
Nathan Palmer
3

Je ne suis généralement pas un utilisateur de Windows, mais je connais l'existence de Cygwin. :-)

Si cela fonctionne assez bien, quelque chose comme

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

ou peut-être à Cygwin

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

Quoi qu'il en soit, ceux-ci devraient vous imprimer les 50 plus grands répertoires (tailles en mégaoctets).

Janne Pikkarainen
la source
2

J'ai trouvé quelques problèmes avec Spacemonger et à la recherche d'un utilitaire que je pouvais facilement transférer ou exécuter à partir d'une clé USB - Space Sniffer s'est avéré très polyvalent à cet égard et a géré les volumes de plusieurs téraoctets avec facilité.


la source
volumes de plusieurs téraoctets avec combien de fichiers? Il semble que notre problème majeur ne soit pas la quantité d'espace utilisée, mais le nombre de fichiers que le programme peut gérer. La plupart s'étouffent à 10 millions.
Nathan Palmer
Je n'ai pas de serveur avec plus de quelques millions de fichiers à expérimenter, donc je ne pourrais pas répondre en toute confiance à votre question de 10 millions de fichiers - ma seule suggestion serait qu'avec ces outils, vous pouvez définir la profondeur du répertoire à laquelle est visualisé - trouver le un juste milieu, puis aller au fond du dossier dont vous avez besoin, devrait également gagner du temps en faisant la visualisation.
1

du -s peut être utilisé à la rigueur et fonctionnera aussi longtemps que nécessaire.

Ignacio Vazquez-Abrams
la source
Merci. Je vérifierai cela la prochaine fois que je serai sur un système * ix.
Nathan Palmer
... hein? gnuwin32.sourceforge.net/packages/coreutils.htm
Ignacio Vazquez-Abrams
Je ne savais pas qu'il était disponible sur Windows. Je vérifierai. Merci.
Nathan Palmer
1

Jetez un œil à GetFoldersize

user9517 pris en chargeGoFundMonica
la source
0

En ce qui concerne la table mft, de l'arrière de ma tête, je semble me souvenir que jkdefrag, la version open source d'origine, a donné une vue très précise du disque, y compris des couleurs différentes pour les zones mft. Je pense que je l'ai utilisé une fois auparavant pour une estimation approximative de la taille et de la fragmentation du mft.

Ne se soucie pas non plus de chdsk.

Pourrait essayer ça?

deploymonkey
la source
Je l'ai essayé. Lorsque je lance l'analyse, elle subit le même sort que la plupart de ces autres programmes. Trop de fichiers / dossiers stockés en mémoire.
Nathan Palmer
Désolé de lire ça. Cela ressemble à un problème de plate-forme. J'ai une autre suggestion: mettre en miroir le disque (image bit, miroir logiciel ou matériel d'imagerie), peu importe comment, briser le miroir et mettre la copie sous contrôle judiciaire sur une autre plate-forme, par exemple. linux / nix. Cela a pris suffisamment de temps pour garantir le coût d'un lecteur de miroir concernant le montant de votre temps de travail investi.
deploymonkey
0

J'ai utilisé Disk Usage Analyzer - Baobab sur Linux en utilisant sa fonction de scan à distance sur le serveur Windows. Je ne sais pas quelles sont ses limites.

Fedora LiveCD contient Baobab. Démarrez-le sur n'importe quel ordinateur de votre réseau local.

Tout est gratuit - comme dans la bière et dans le discours. Aussi pour usage commercial.

Tometzky
la source