195 votes

Pourquoi le fait de vider l'espace disque accélère-t-il les ordinateurs ?

J'ai regardé un tas de vidéos et je comprends maintenant un peu mieux comment fonctionnent les ordinateurs. Je comprends mieux ce qu'est la RAM, la mémoire volatile et non volatile, et le processus de permutation. Je comprends également pourquoi l'augmentation de la RAM accélère un ordinateur.

Je ne comprends pas pourquoi le nettoyage de l'espace disque accélère un ordinateur. C'est le cas ? Pourquoi ? Est-ce que cela a à voir avec la recherche d'espace disponible pour sauvegarder des choses ? Ou au fait de déplacer des éléments pour créer un espace continu suffisamment long pour sauvegarder quelque chose ? Combien d'espace vide dois-je laisser libre sur le disque dur ?

316voto

Cédric Points 164

Ici, j'ai écrit un livre par accident. Prends un café d'abord.

Pourquoi le fait de vider l'espace disque accélère-t-il les ordinateurs ?

Ce n'est pas le cas, du moins pas tout seul. C'est un mythe très répandu. La raison pour laquelle il s'agit d'un mythe courant est que le remplissage de votre disque dur se produit souvent en même temps que d'autres choses qui, traditionnellement, ne se produisent pas. pourrait ralentir † votre ordinateur. Les performances des SSD ont tendance à se dégradent au fur et à mesure que le lecteur se remplit mais il s'agit d'un problème relativement nouveau, propre aux disques SSD, qui n'est pas vraiment perceptible pour les utilisateurs occasionnels. En général, un faible espace disque libre n'est qu'un hareng rouge .

Par exemple, des choses comme :

  • Fragmentation des fichiers. Fragmentation des fichiers est un problème †† mais le manque d'espace libre, bien qu'il s'agisse d'un des facteurs les plus importants de la réussite de l'entreprise. beaucoup de facteurs contributifs, n'est pas le seul la cause de cette situation. Quelques points clés ici :

    • Les chances qu'un fichier soit fragmenté sont pas lié à la quantité d'espace libre restant sur le disque. Ils sont liés à la taille du plus grand bloc contigu d'espace libre sur le disque (par exemple, les " trous " d'espace libre), que la quantité d'espace libre se trouve à mettre une limite supérieure sur . Ils sont également liés à la façon dont le système de fichiers gère l'allocation des fichiers (voir ci-dessous). Pensez-y : Un disque dur rempli à 95 % avec tout l'espace libre dans un seul bloc contigu n'a aucune chance de fragmenter un nouveau fichier. ††† (et la probabilité de fragmenter un fichier ajouté est indépendante de l'espace libre). Un disque rempli à 5 %, mais dont les données sont réparties uniformément sur le disque, a de très fortes chances d'être fragmenté.

    • Gardez à l'esprit que la fragmentation des fichiers n'affecte les performances que lorsque l'on accède aux fichiers fragmentés. . Pensez-y : Vous avez un beau disque défragmenté qui a encore beaucoup de "trous" libres. Un scénario courant. Tout se passe bien. Mais vous finissez par arriver à un point où il ne reste plus de grands blocs d'espace libre. Vous téléchargez un film énorme, le fichier finit par être sévèrement fragmenté. Cela ne ralentira pas votre ordinateur. Tous vos fichiers d'application et autres qui étaient auparavant en bon état ne seront pas soudainement fragmentés. Cela peut rendre le film prend plus de temps à charger (bien que les débits binaires des films soient si faibles comparés aux débits de lecture des disques durs que cela ne sera probablement pas perceptible), et cela peut affecter les performances liées aux E/S pendant que l'application film se charge, mais à part ça, rien ne change.

    • La fragmentation des fichiers est certes un problème, mais ses effets sont souvent atténués par la mise en mémoire tampon et la mise en cache au niveau du système d'exploitation et du matériel. Les écritures retardées, la lecture anticipée, les stratégies comme le Préfetcher dans Windows, etc., contribuent tous à réduire les effets de la fragmentation. Vous ne devez généralement pas en fait Vous ne ressentirez pas d'impact significatif avant que la fragmentation ne devienne sévère (j'oserais même dire que tant que votre fichier d'échange n'est pas fragmenté, vous ne le remarquerez probablement jamais).

  • L'indexation des recherches est un autre exemple. Supposons que l'indexation automatique soit activée et que le système d'exploitation ne gère pas cette opération de manière efficace. Au fur et à mesure que vous enregistrez de plus en plus de contenu indexable sur votre ordinateur (documents et autres), l'indexation peut prendre de plus en plus de temps et commencer à avoir un effet sur la vitesse perçue de votre ordinateur lorsqu'il fonctionne, à la fois en termes d'utilisation des E/S et du CPU. Cela n'est pas lié à l'espace libre, mais à la quantité de contenu indexable dont vous disposez. Cependant, le fait de manquer d'espace libre va de pair avec le stockage d'une plus grande quantité de contenu, d'où le faux lien établi.

  • Logiciel antivirus. Comme dans l'exemple de l'indexation des recherches. Disons que vous avez un logiciel antivirus configuré pour effectuer une analyse en arrière-plan de votre disque. Comme vous avez de plus en plus de contenu à analyser, la recherche prend plus de ressources E/S et CPU, ce qui peut interférer avec votre travail. Là encore, ce problème est lié à la quantité de contenu à numériser. Plus de contenu équivaut souvent à moins d'espace libre, mais le manque d'espace libre n'est pas la cause.

  • Logiciel installé. Disons que vous avez installé de nombreux logiciels qui se chargent au démarrage de votre ordinateur, ce qui ralentit le temps de démarrage. Ce ralentissement est dû au fait qu'un grand nombre de logiciels sont chargés. Or, les logiciels installés occupent de l'espace sur le disque dur. Par conséquent, l'espace libre du disque dur diminue en même temps que cela se produit, et une fois encore, un faux lien peut être facilement établi.

  • De nombreux autres exemples de ce type qui, pris dans leur ensemble, apparaître pour associer étroitement le manque d'espace libre à une baisse des performances.

Ce qui précède illustre une autre raison pour laquelle ce mythe est si répandu : Si le manque d'espace libre n'est pas une cause directe de ralentissement, la désinstallation de diverses applications, la suppression de contenu indexé ou scanné, etc. peut parfois (mais pas toujours ; cela sort du cadre de cette réponse). augmente pour des raisons sans rapport avec l'espace libre restant. Mais cela libère aussi naturellement de l'espace sur le disque dur. Par conséquent, on peut à nouveau établir un lien apparent (mais faux) entre "plus d'espace libre" et "ordinateur plus rapide".

Pensez-y : Si vous avez une machine qui tourne lentement à cause de nombreux logiciels installés, etc., et que vous clonez, exactement, votre disque dur sur un disque dur plus grand puis agrandissez vos partitions pour gagner plus d'espace libre, la machine ne va pas s'accélérer comme par magie. Les mêmes logiciels se chargent, les mêmes fichiers sont toujours fragmentés de la même manière, le même indexeur de recherche fonctionne toujours, rien ne change malgré le fait d'avoir plus d'espace libre.

Est-ce que cela a à voir avec la recherche d'un espace mémoire où sauvegarder les choses ?

Non. Ce n'est pas le cas. Il y a deux choses très importantes à noter ici :

  1. Votre disque dur ne fait pas de recherche pour trouver des endroits où mettre des choses. Ton disque dur est stupide. Il n'est rien. C'est un gros bloc de stockage adressé qui place aveuglément les choses là où votre système d'exploitation lui dit de le faire et lit tout ce qu'on lui demande. Les disques modernes disposent de mécanismes sophistiqués de mise en cache et de mise en mémoire tampon conçus pour prédire ce que le système d'exploitation va demander en fonction de l'expérience que nous avons acquise au fil du temps (certains disques sont même conscients du système de fichiers qu'ils contiennent), mais en gros, considérez votre disque comme une grosse brique de stockage débile avec des bonus de performance occasionnels.

  2. Votre système d'exploitation ne cherche pas non plus des endroits où mettre les choses. Il n'y a pas de "recherche". Beaucoup d'efforts ont été déployés pour résoudre ce problème, car il est essentiel aux performances du système de fichiers. La façon dont les données sont organisées sur votre disque est déterminée par votre système de fichiers. système de fichiers . Par exemple, FAT32 (anciens PC DOS et Windows), NTFS (Windows ultérieur), HFS+ (Mac), ext4 (certains Linux), et bien d'autres. Même les concepts de "fichier" et de "répertoire" ne sont que des produits des systèmes de fichiers typiques -- les disques durs ne connaissent pas les bêtes mystérieuses appelées "fichiers". Les détails sortent du cadre de cette réponse. Mais essentiellement, tous les systèmes de fichiers courants ont des moyens de savoir où se trouve l'espace disponible sur un disque, de sorte qu'une recherche d'espace libre est, dans des circonstances normales (c'est-à-dire des systèmes de fichiers en bonne santé), inutile. Exemples :

    • NTFS a un table du fichier maître qui comprend les fichiers spéciaux $Bitmap etc., et de nombreuses métadonnées décrivant le lecteur. Essentiellement, il garde la trace de l'emplacement des prochains blocs libres, de sorte que les nouveaux fichiers peuvent être écrits directement dans les blocs libres sans avoir à scanner le lecteur à chaque fois.

    • Un autre exemple, ext4 a ce que l'on appelle le "allocateur de bitmap" Le système de gestion de l'espace de travail (GET) est une amélioration par rapport à ext2 et ext3 qui lui permet de déterminer directement où se trouvent les blocs libres au lieu de parcourir la liste des blocs libres. Ext4 prend également en charge "l'allocation différée", c'est-à-dire la mise en mémoire tampon des données dans la RAM par le système d'exploitation avant de les écrire sur le disque afin de prendre de meilleures décisions sur l'endroit où les placer pour réduire la fragmentation.

    • De nombreux autres exemples.

ou en déplaçant les choses pour créer un espace continu suffisamment long pour sauvegarder quelque chose ?

Non. Cela ne se produit pas, du moins pas avec les systèmes de fichiers que je connais. Les fichiers finissent juste par être fragmentés.

Le processus consistant à "déplacer des objets afin de créer un espace contigu suffisamment long pour pouvoir sauvegarder quelque chose" est appelé défragmentation . Cela ne se produit pas lorsque les fichiers sont écrits. Cela se produit lorsque vous exécutez votre défragmenteur de disque. Sur les Windows les plus récents, au moins, cette opération se déroule automatiquement selon un programme, mais elle n'est jamais déclenchée par l'écriture d'un fichier.

Être capable de éviter Ce type de déplacement est essentiel aux performances du système de fichiers. C'est pourquoi la fragmentation se produit et la défragmentation est une étape distincte.

Combien d'espace vide dois-je laisser sur le disque dur ?

Il est plus difficile de répondre à cette question, et cette réponse a déjà donné lieu à un petit livre.

Règles de base :

  • Pour tous les types d'entraînement :

    • Surtout, laissez suffisamment d'espace libre pour vous permettre d'utiliser efficacement votre ordinateur . Si vous manquez d'espace pour travailler, il vous faut un disque plus grand.
    • De nombreux outils de défragmentation de disque nécessitent une quantité minimale d'espace libre (je pense que celui de Windows nécessite 15% dans le pire des cas) pour fonctionner. Ils utilisent cet espace libre pour retenir temporairement les fichiers fragmentés pendant que d'autres choses sont réarrangées.
    • Laissez de la place pour d'autres fonctions du système d'exploitation. Par exemple, si votre machine ne dispose pas de beaucoup de RAM physique et que vous avez activé la mémoire virtuelle avec un fichier de page de taille dynamique, vous devez laisser suffisamment d'espace pour la taille maximale du fichier de page. Ou si vous avez un ordinateur portable que vous mettez en mode hibernation, vous aurez besoin de suffisamment d'espace libre pour le fichier d'état d'hibernation. Ce genre de choses.
  • Spécifique au SSD :

    • Pour une fiabilité optimale (et, dans une moindre mesure, pour les performances), les disques SSD ont besoin d'un certain espace libre, qu'ils utilisent, sans entrer dans les détails, pour répartir les données sur le disque afin d'éviter d'écrire constamment au même endroit (ce qui les use). Ce concept de laisser de l'espace libre est appelé Surapprovisionnement . C'est important, mais dans de nombreux SSD, l'espace surprovisionné obligatoire existe déjà. . En d'autres termes, les disques ont souvent quelques dizaines de Go de plus que ce qu'ils déclarent au système d'exploitation. Les disques bas de gamme nécessitent souvent que vous laissiez manuellement non partitionné espace, mais pour les lecteurs avec OP obligatoire, vous ne devez pas laisser d'espace libre . Il est important de noter ici que l'espace surprovisionné n'est souvent pris que sur l'espace non partitionné . Donc, si votre partition occupe la totalité de votre disque et que vous laissez de l'espace libre, cela ne veut pas dire qu'il n'y a pas d'espace libre. toujours compte. Souvent, le surapprovisionnement manuel vous oblige à réduire votre partition pour qu'elle soit plus petite que la taille du disque. Consultez le manuel d'utilisation de votre SSD pour plus de détails. TRIM et le ramassage des déchets ont également des effets, mais ils n'entrent pas dans le cadre de cette réponse.

Personnellement, je prends généralement un disque plus grand lorsqu'il me reste environ 20-25% d'espace libre. Ce n'est pas lié aux performances, c'est juste que lorsque j'arrive à ce point, je pense que je vais bientôt manquer d'espace pour les données et qu'il est temps de prendre un disque plus grand.

Plus important que de surveiller l'espace libre, il faut s'assurer que la défragmentation programmée est activée le cas échéant (pas sur les disques SSD), afin de ne jamais arriver au point où cela devient suffisamment grave pour vous affecter. Il est tout aussi important d'éviter les modifications malencontreuses et de laisser votre système d'exploitation faire son travail. ne pas désactiver le préfetcher de Windows ( sauf pour les SSD ), etc.


Il y a une dernière chose qui mérite d'être mentionnée. Une des autres réponses mentionne que le mode semi-duplex de SATA empêche la lecture et l'écriture en même temps. Bien que cela soit vrai, c'est très simplifié et cela n'a rien à voir avec les problèmes de performance discutés ici. Cela signifie simplement que les données ne peuvent pas être transférées dans les deux sens. sur le fil en même temps. Cependant, le SATA a une spécification assez complexe impliquant des tailles de blocs maximales minuscules (environ 8kB par bloc sur le fil, je pense), des files d'attente pour les opérations de lecture et d'écriture, etc., et n'empêche pas les écritures dans les tampons pendant que les lectures sont en cours, les opérations entrelacées, etc.

Tout blocage qui se produit est dû à la concurrence pour les ressources physiques, généralement atténuée par l'abondance de cache. Le mode duplex de SATA n'est presque pas pertinent ici.


† "Ralentir" est un terme général. Ici, je l'utilise pour faire référence à des choses qui sont soit liées aux E/S (par exemple, si votre ordinateur est assis là à faire des calculs, le contenu du disque dur n'a aucun impact), soit liées au CPU et en concurrence avec des choses tangentiellement liées qui ont une utilisation élevée du CPU (par exemple, un logiciel antivirus qui analyse des tonnes de fichiers).

†† SSDs sont affectée par la fragmentation dans la mesure où les vitesses d'accès séquentielles sont généralement plus rapides que les accès aléatoires, bien que les SSD ne soient pas confrontés aux mêmes limitations qu'un dispositif mécanique (même dans ce cas, l'absence de fragmentation ne garantit pas l'accès séquentiel, en raison de l'usure, etc.) Cependant, dans pratiquement tous les scénarios d'utilisation générale, ce n'est pas un problème. Les différences de performances dues à la fragmentation sur les disques SSD sont généralement négligeables pour des choses comme le chargement d'applications, le démarrage de l'ordinateur, etc.

††† En supposant un système de fichiers sain qui ne fragmente pas les fichiers volontairement.

22voto

Ralph Wiggum Points 281

En plus de Explication de Nathanial Meek pour les disques durs, le scénario est différent pour les disques SSD.

Les SSD ne sont pas sensibles à la dispersion des données car le temps d'accès à n'importe quel endroit du SSD est le même. Le temps d'accès typique d'un SSD est de 0,1 ms contre un temps d'accès typique d'un disque dur de 10 à 15 ms. Il est cependant sensible aux données déjà écrites sur le SSD.

Contrairement aux disques durs traditionnels qui peuvent écraser les données existantes, un SSD a besoin d'un espace complètement vide pour écrire des données. Pour ce faire, des fonctions appelées Trim et Garbage Collection purgent les données qui ont été marquées comme supprimées. Le Garbage Collection fonctionne mieux lorsqu'il y a une certaine quantité d'espace libre sur le SSD. Il est généralement recommandé de disposer de 15 à 25 % d'espace libre.

Si le ramasse-miettes ne peut pas terminer son travail à temps, chaque opération d'écriture est précédée d'un nettoyage de l'espace où les données sont censées être écrites. Cela double le temps de chaque opération d'écriture et dégrade les performances globales.

Voici un excellent article qui explique le fonctionnement de Trim et Garbage Collection

12voto

Thomi Points 5434

À l'intérieur d'un disque dur traditionnel se trouve un plateau métallique en rotation où les bits et les octets individuels sont codés. Lorsque des données sont ajoutées au plateau, le contrôleur de disque les stocke d'abord sur l'extérieur du disque. Au fur et à mesure que de nouvelles données sont ajoutées, l'espace utilisé se déplace vers l'intérieur du disque en dernier.

En gardant cela à l'esprit, il y a deux effets qui font que les performances du disque diminuent à mesure que le disque se remplit : Seek Times y Vélocité de rotation .

Seek Times

Pour accéder aux données, un disque dur traditionnel doit physiquement déplacer une tête de lecture/écriture dans la bonne position. Cela prend du temps, appelé "temps de recherche". Les fabricants publient les temps de recherche de leurs disques, qui ne sont généralement que de quelques millisecondes. Cela peut sembler peu, mais pour un ordinateur, c'est une éternité. Si vous devez lire ou écrire sur un lot de différents emplacements de disque pour effectuer une tâche (ce qui est courant), ces temps de recherche peuvent s'additionner pour former un retard ou une latence perceptible.

Dans un lecteur presque vide, la plupart des données se trouvent au même endroit ou presque, généralement sur le bord extérieur, près de la position de repos de la tête de lecture/écriture. Cela réduit la nécessité de chercher sur le disque, ce qui réduit considérablement le temps de recherche. Un lecteur qui est presque plein devra non seulement chercher sur le disque plus souvent et avec des mouvements de recherche plus grands/longs, mais il peut avoir des difficultés à garder les données connexes dans le même secteur, ce qui augmente encore les recherches sur le disque. Ce phénomène est appelé fragmenté données.

La libération d'espace disque peut améliorer les temps de recherche en permettant au service de défragmentation non seulement de nettoyer plus rapidement les fichiers fragmentés, mais aussi de déplacer les fichiers vers l'extérieur du disque, de sorte que le temps de recherche moyen est plus court.

Vélocité de rotation

Les disques durs tournent à une vitesse fixe (généralement 5400 tr/min ou 7200 tr/min pour votre ordinateur, et 10000 tr/min ou même 15000 tr/min sur un serveur). Il faut également une quantité fixe d'espace sur le disque (plus ou moins) pour stocker un seul bit. Pour un disque tournant à un taux de rotation fixe, l'extérieur du disque aura un taux linéaire plus rapide que l'intérieur du disque. Cela signifie que les bits situés près du bord extérieur du disque passent devant la tête de lecture à une vitesse plus rapide que les bits situés près du centre du disque, et donc que la tête de lecture/écriture peut lire ou écrire des bits plus rapidement près du bord extérieur du disque qu'à l'intérieur.

Un lecteur qui est presque vide passera la plupart de son temps à accéder aux bits situés près du bord extérieur plus rapide du disque. Un lecteur qui est presque plein passera plus de temps à accéder aux bits situés près de la partie intérieure plus lente du disque.

Là encore, vider l'espace disque peut rendre l'ordinateur plus rapide en permettant au service de défragmentation de déplacer les données vers l'extérieur du disque, où les lectures et les écritures sont plus rapides.

Parfois, un disque se déplace trop vite pour la tête de lecture, et cet effet est réduit car les secteurs proches du bord extérieur sont décalés... écrits dans le désordre pour que la tête de lecture puisse suivre. Mais dans l'ensemble, cela tient.

Ces deux effets sont dus au fait que le contrôleur de disque regroupe d'abord les données dans la partie la plus rapide du disque et n'utilise les parties plus lentes du disque que lorsqu'il le doit. Au fur et à mesure que le disque se remplit, il passe de plus en plus de temps dans la partie la plus lente du disque.

Ces effets s'appliquent également aux nouveaux lecteurs. Toutes choses égales par ailleurs, un nouveau disque de 1 To est plus rapide qu'un nouveau disque de 200 Go, car le disque de 1 To stocke des bits plus rapprochés et ne se remplit pas aussi vite sur les pistes internes. Cependant, il est rarement utile de s'appuyer sur ces données pour prendre des décisions d'achat, car les fabricants peuvent utiliser plusieurs plateaux pour atteindre la taille de 1 To, des plateaux plus petits pour limiter un système de 1 To à 200 Go, des restrictions logicielles/de contrôleur de disque pour limiter un plateau de 1 To à seulement 200 Go d'espace, ou vendre un disque avec des plateaux partiellement terminés/défectueux provenant d'un disque de 1 To avec beaucoup de secteurs défectueux comme un disque de 200 Go.

Autres facteurs

Il convient de noter ici que les effets ci-dessus sont assez faibles. Les ingénieurs en matériel informatique passent beaucoup de temps à travailler sur la façon de minimiser ces problèmes, et des choses comme les tampons de disque dur, la mise en cache Superfetch, et d'autres systèmes travaillent tous pour minimiser le problème. Sur un sain avec beaucoup d'espace libre, vous ne le remarquerez probablement même pas. De plus, les SSD ont des caractéristiques de performance complètement différentes. Cependant, les effets existent, et un ordinateur devient légitimement plus lent à mesure que le disque se remplit. Sur un malsain où l'espace disque est très faible, ces effets peuvent créer une situation de "thrashing" du disque, où le disque est constamment à la recherche de données fragmentées.

En outre, l'ajout de données sur le disque signifie que certaines autres opérations, comme l'indexation ou les analyses AV et les processus de défragmentation ne font que plus travailler en arrière-plan, même s'il le fait à la même vitesse ou presque qu'avant.

Enfin, les performances du disque sont énorme indicateur des performances globales d'un PC de nos jours... un indicateur encore plus important que la vitesse du CPU. Même une petite baisse du débit du disque équivaut très souvent à une baisse réelle et perçue des performances globales du PC. C'est d'autant plus vrai que les performances des disques durs n'ont pas vraiment suivi le rythme des améliorations apportées au CPU et à la mémoire ; le disque à 7200 tours/minute est le standard des ordinateurs de bureau depuis plus de dix ans maintenant. Plus que jamais, ce disque rotatif traditionnel est le goulot d'étranglement de votre ordinateur.

6voto

Martin Clarke Points 3370

Toutes les autres réponses sont techniquement C'est exact, mais j'ai toujours trouvé que cet exemple simple l'explique le mieux.

Trier les choses est vraiment facile si vous avez beaucoup d'espace... mais difficile si vous n'avez pas la place... les ordinateurs ont aussi besoin d'espace !

Ce classique " 15 puzzle "Il est difficile et chronophage car vous ne disposez que d'une seule case libre pour mélanger les tuiles et les placer dans l'ordre correct de 1 à 15.

hard 15 puzzle

Cependant, si l'espace était beaucoup plus grand, vous pourriez résoudre ce puzzle en moins de 10 secondes.

easy 15 puzzle

Pour quiconque a déjà joué avec ce puzzle... la compréhension de l'analogie semble venir naturellement ;-)

5voto

RomanSt Points 8954

Un ordinateur qui a disposé de très peu d'espace disque, sur un disque dur mécanique en rotation, pendant une longue période, sera généralement plus lent à mesure que la fragmentation des fichiers augmente. Une fragmentation accrue signifie des lectures lentes - très lente dans les cas extrêmes.

Une fois qu'un ordinateur est dans cet état, libérer de l'espace disque ne résoudra pas vraiment le problème. Vous devez également défragmenter le disque. Avant qu'un ordinateur ne soit dans cet état, libérer de l'espace ne l'accélérera pas ; cela réduira simplement les risques que la fragmentation devienne un problème.

Cela ne s'applique qu'aux ordinateurs équipés de disques durs mécaniques en rotation, car la fragmentation a un effet négligeable sur la vitesse de lecture des disques SSD.

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