11 votes

Pourquoi l'utilisation du disque est-elle supérieure à la taille de tous les fichiers qu'il contient ?

J'ai un disque dur de 3TB. Dans l'écran des propriétés du disque dur, il est indiqué que j'ai utilisé 471,4 Go, mais lorsque je sélectionne tous les fichiers dans Nautilus, il est indiqué que 321,0 Go sont sélectionnés. Si le disque dur ne contient que 321,0 Go de fichiers, pourquoi utilise-t-il 471,4 Go ?

Le partitionnement du disque dur utilise le GUID et le système de fichiers utilisé est EXT4. Lorsque je sélectionne le disque dur à l'aide de l'application Utilitaire de disque, j'obtiens un avertissement disant :

WARNING: The partition is misaligned by 3072 bytes.
This may result in very poor performance.  Repartitioning is suggested.

Cela a-t-il un rapport avec les 150,4 Go manquants ?

17voto

RN. Points 559

Les fichiers sur le disque ont deux tailles : la "taille apparente" et la "taille sur le disque". Plusieurs raisons peuvent provoquer une grand site divergence :

  • Un grand nombre de fichiers entraînera une grande quantité de surcharge, à cause de la fragmentation interne. Par exemple, Ext4 a une taille de bloc par défaut de 4KiB ; les fichiers plus petits que cela consommeront toujours 4KiB, et les tailles supérieures seront "arrondies" à cet alignement de bloc.
  • Les répertoires sont également des fichiers et la même règle s'applique à eux aussi. De plus, si vous créez une grande quantité de fichiers dans un répertoire, et que vous les supprimez à nouveau plus tard, l'utilisation du fichier du répertoire ne peut pas être récupérée (recréer le répertoire aide).
  • Les fichiers épars sont des fichiers spéciaux, qui semblent être volumineux, mais qui ne "consomment" pas d'espace. C'est un phénomène courant dans la virtualisation des images de disques virtuels ; ils semblent volumineux, mais la taille "réelle" peut être beaucoup plus petite. De nombreux utilitaires (et gestionnaires de fichiers) sont incapables d'afficher l'utilisation réelle du disque.
  • L'utilisation de liens durs. Le contenu d'un fichier peut exister sur le disque alors que de multiples références pointent vers lui. Certains gestionnaires de fichiers peuvent comptabiliser la taille pour chaque référence.

Je vous suggère d'utiliser un outil d'utilisation du disque connu pour être capable de lister les deux tailles pour voir si c'est le problème. Essayez ncdu dans un terminal et utiliser a pour basculer entre l'utilisation réelle et l'utilisation du disque.


Une courte démo sur la fragmentation interne due à un système de fichiers de 4KiB de taille de bloc utilisant du :

$ sudo tune2fs -l /dev/path-to-device | grep "Block size"
Block size:               4096

$ echo blaataaap > myfile                      # creates a 10-byte file

$ du --block-size=1 myfile                     # prints the usage on disk (filesystem)
4096   myfile

$ du --apparent-size --block-size=1 myfile     # prints the apparent size, i.e.
10     myfile                                  # content length when seeking

$ ls -al
-rw-rw-r-- 1 gert gert 10 Jan 1 23:24 myfile   # ls uses apparent sizes

Cela signifie que ce fichier de 10 octets est 4086 octets plus gros sur le disque qu'il n'apparaît dans un listing et qu'il souffre de fragmentation interne.


Une courte démo sur les liens durs et l'utilisation du disque affichée à tort lors de l'énumération des fichiers ( ls dans ce cas) :

$ dd if=/dev/zero of=1MBfile bs=1M count=1 # create a 1MB file
$ ln 1MBfile a_hard_link                   # create a hard link to it

$ ls -alht                                 # ls will report 2MB
total 2.1M
drwxrwxr-x  2 gert gert 4.0K Jan  2 11:21 .
-rw-rw-r--  2 gert gert 1.0M Jan  2 11:21 1MBfile
-rw-rw-r--  2 gert gert 1.0M Jan  2 11:21 a_hard_link

$ du -B 1024 .                             # du reports 1028K total for directory
1028    .

$ du -B 1024 a_hard_link                   # and 1024K for each file individually
1024    a_hard_link
$ du -B 1024 1MBfile
1024    1MBfile

2voto

Tim Heuer Points 3795

Cela se produit parce que l'utilisation totale du disque n'est jamais égale à la somme de tous les fichiers présents (ce que Nautilius affiche une fois que vous avez sélectionné tous les fichiers).

La raison en est que les systèmes de fichiers eux-mêmes ont tendance à occuper de l'espace sur la partition. Très probablement, si vous effacez toutes les données que vous stockez sur ce disque dur, l'utilisation du disque serait d'environ 150 Go. Cet espace est réservé au système de fichiers - il est nécessaire, car le système de fichiers doit stocker les données sur les fichiers quelque part. ext4 pré-alloue cet espace de surcharge avant tout fichier est créé, contrairement à - par exemple - ext3, où cet espace augmente au fur et à mesure que des fichiers sont ajoutés à la partition.

Si vous considérez ces 150 Go comme un problème, remarquez que c'est seulement 5% de la taille totale de votre disque dur . Si vous avez besoin de plus de 95 % de votre disque dur, vous devez probablement en acheter un plus grand, au lieu de vous soucier de ces 150 Go qui sont hors de votre portée.

Gardez également à l'esprit qu'en cas d'ext4, cet espace n'est pas gaspillé. La fragmentation des données n'est pas un problème ici, mais le coût de cet avantage est cet espace supplémentaire occupé. Il existe des moyens de le diminuer et de forcer ext4 à utiliser beaucoup moins de cet espace, mais ce n'est pas recommandé, car - à cause des risques de fragmentation et d'autres optimisations qui ne pourront pas se produire - cela aura très probablement pour résultat que votre machine fonctionnera beaucoup plus lentement, car l'accès aux données ne sera pas aussi fluide.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X