Ici, j'ai écrit un livre par accident. Prendre un café d'abord.
Pourquoi la vidange de l'espace disque accélère-t-elle les ordinateurs?
Ce n'est pas le cas, du moins pas seul. C'est un mythe très commun. La raison pour laquelle il est un mythe commun est parce que le remplissage de votre disque dur se produit souvent en même temps que d’autres tâches qui, traditionnellement, pourraient ralentir votre ordinateur † . Les performances des disques SSD ont tendance à se dégrader au fur et à mesure que le disque se remplit , mais il s'agit d'un problème relativement nouveau, propre aux disques SSD, qui ne se remarque pas vraiment pour les utilisateurs occasionnels. En règle générale, un espace disque libre insuffisant n'est qu'un fouillis rouge .
Par exemple, des choses comme:
Fragmentation de fichier. La fragmentation des fichiers est un problème †† , mais le manque d’espace libre, bien qu’un des nombreux facteurs qui y contribuent, n’en est pas la seule cause. Quelques points clés ici:
Les chances qu'un fichier soit fragmenté ne sont pas liées à la quantité d'espace libre disponible sur le lecteur. Ils sont liés à la taille du plus grand bloc d'espace libre contigu sur le lecteur (par exemple, des "trous" d'espace libre) sur lesquels la quantité d'espace libre se trouve placer une limite supérieure . Ils sont également liés à la manière dont le système de fichiers gère l’allocation de fichiers (voir ci-dessous). Considérez: Un lecteur qui est rempli à 95% avec tout l’espace libre dans un seul bloc contigu a 0% de chance de fragmenter un nouveau fichier ††† (et les chances de fragmenter un fichier ajouté sont indépendantes de l’espace libre). Un lecteur plein à 5%, mais dont les données sont réparties uniformément sur le lecteur, présente un risque très élevé de fragmentation.
N'oubliez pas que la fragmentation de fichiers affecte uniquement les performances lorsque l'utilisateur accède aux fichiers fragmentés . Considérez: vous avez un lecteur défragmenté agréable qui a encore beaucoup de "trous" libres. Un scénario commun. Tout se passe bien. Cependant, vous finissez par arriver à un point où il ne reste plus de gros blocs d'espace libre. Vous téléchargez un film énorme, le fichier finit par être gravement fragmenté. Cela ne ralentira pas votre ordinateur. Tous vos fichiers d’application et ceux qui étaient auparavant corrects ne seront pas subitement fragmentés. Cela peut faire le filmprend plus de temps à charger (bien que les débits binaires typiques d'un film soient si bas comparés aux taux de lecture du disque dur qu'il soit probablement imperceptible), et cela peut affecter les performances liées aux E / S pendant le chargement du film , mais cela ne correspond pas à cela, rien ne change.
Bien que la fragmentation des fichiers soit certainement un problème, les effets sont souvent atténués par la mise en mémoire tampon et la mise en cache du système d'exploitation et du matériel. Les écritures différées, la lecture anticipée, les stratégies telles que le préfetcher dans Windows, etc., contribuent à réduire les effets de la fragmentation. En général , vous ne fait l' expérience de l' impact significatif jusqu'à ce que la fragmentation devient grave (j'ose même dire que tant que votre fichier d'échange n'est pas fragmenté, vous remarquerez probablement jamais).
L'indexation de recherche est un autre exemple. Supposons que l'indexation automatique est activée et que le système d'exploitation ne gère pas cette tâche avec élégance. Au fur et à mesure que vous enregistrez de plus en plus de contenu indexable sur votre ordinateur (documents et autres), l'indexation peut prendre plus de temps et peut commencer à avoir une incidence sur la vitesse perçue de votre ordinateur lorsqu'il est en cours d'exécution, aussi bien en termes d'utilisation d'E / S que de processeur. . Cela n'est pas lié à l'espace libre, mais à la quantité de contenu indexable que vous avez. Cependant, le fait de manquer d'espace libre va de pair avec le stockage de davantage de contenu, ce qui crée une fausse connexion.
Logiciel antivirus. Similaire à l'exemple d'indexation de recherche. Supposons qu'un logiciel antivirus soit configuré pour analyser en arrière-plan votre lecteur. Comme vous avez de plus en plus de contenu numérisable, la recherche nécessite davantage de ressources d'E / S et de CPU, pouvant éventuellement interférer avec votre travail. Encore une fois, cela est lié à la quantité de contenu numérisable que vous avez. Plus de contenu signifie souvent moins d'espace libre, mais le manque d'espace libre n'en est pas la cause.
Logiciel installé. Supposons que de nombreux logiciels installés se chargent au démarrage de votre ordinateur, ce qui ralentit les temps de démarrage. Ce ralentissement est dû au chargement de nombreux logiciels. Cependant, les logiciels installés prennent de l'espace sur le disque dur. Par conséquent, l'espace libre sur le disque dur diminue en même temps que cela, et une nouvelle connexion peut être facilement établie.
- De nombreux autres exemples allant dans ce sens qui, pris ensemble, semblent associer étroitement le manque d’espace libre à des performances moindres.
Ce qui précède illustre une autre raison pour laquelle il s’agit d’un mythe si courant: le manque d’espace libre n’est pas une cause directe du ralentissement, de la désinstallation de diverses applications, de la suppression de contenu indexé ou numérisé, etc. répondre) augmente à nouveau les performances pour des raisons indépendantes de la quantité d'espace libre. Mais cela libère aussi naturellement l’espace disque. Par conséquent, encore une fois, une connexion apparente (mais fausse) entre "plus d'espace libre" et "ordinateur plus rapide" peut être faite.
Considérez: Si votre machine tourne lentement en raison de nombreux logiciels installés, etc., et que vous clonez exactement votre disque dur sur un disque dur plus volumineux, développez ensuite vos partitions pour obtenir plus d'espace libre, la machine ne fonctionnera pas comme par magie up. Les mêmes logiciels sont chargés, 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 qu’il y ait plus d’espace libre.
Est-ce que cela a à voir avec la recherche d'un espace mémoire où sauvegarder des choses?
Non. Il y a deux choses très importantes à noter ici:
Votre disque dur ne cherche pas pour trouver des endroits pour mettre des choses. Votre disque dur est stupide. Ce n'est rien. C'est un gros bloc de stockage adressé qui place aveuglément les choses là où votre système d'exploitation le dit et lit tout ce qui lui est demandé. Les disques modernes ont des 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 acquise au fil du temps (certains disques sont même conscients du système de fichiers qu'ils utilisent), mais essentiellement, pensez à votre lecteur comme une grosse brique de stockage avec des fonctionnalités de performance bonus occasionnelles.
Votre système d'exploitation ne recherche pas non plus d'endroits où placer des choses. Il n'y a pas de "recherche". De nombreux efforts ont été déployés pour résoudre ce problème, car il est essentiel aux performances du système de fichiers. La manière dont les données sont réellement organisées sur votre lecteur est déterminée par votre système de fichiers.. Par exemple, FAT32 (anciens PC sous DOS et Windows), NTFS (plus tard Windows), HFS + (Mac), ext4 (certains Linux) et bien d’autres. Même les concepts de "fichier" et de "répertoire" ne sont que des produits de systèmes de fichiers classiques - les disques durs ne connaissent pas les mystérieuses bêtes appelées "fichiers". Les détails sortent du cadre de cette réponse. Cependant, tous les systèmes de fichiers courants disposent de moyens permettant de suivre l'emplacement de l'espace disponible sur un lecteur, de sorte qu'une recherche d'espace libre est, dans des circonstances normales, inutile (systèmes de fichiers en bonne santé). Exemples:
NTFS a une table de fichiers principale , qui comprend les fichiers spéciaux $Bitmap
, etc., ainsi que de nombreuses métadonnées décrivant le lecteur. Essentiellement, il garde la trace des prochains blocs libres, afin que les nouveaux fichiers puissent être écrits directement dans des blocs libres sans avoir à analyser le lecteur à chaque fois.
Un autre exemple, ext4 a ce qu'on appelle "l'allocateur de bitmap" , une amélioration par rapport à ext2 et ext3 qui l'aide essentiellement à déterminer directement où sont les blocs libres au lieu d'analyser 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 l'écrire sur le lecteur afin de prendre de meilleures décisions quant à l'emplacement du fichier afin de réduire la fragmentation.
Beaucoup d'autres exemples.
ou avec des choses en mouvement pour constituer un espace suffisamment long et continu pour sauver quelque chose?
Non, cela ne se produit pas, du moins avec aucun système de fichiers à ma connaissance. Les fichiers finissent par être fragmentés.
La défragmentation consiste à "déplacer des objets pour créer un espace suffisamment long pour conserver quelque chose" . Cela n'arrive pas lorsque les fichiers sont écrits. Cela se produit lorsque vous exécutez votre défragmenteur de disque. Sous Windows plus récent, au moins, cela se produit automatiquement selon un planning, mais cela n’est jamais déclenché par l’écriture d’un fichier.
Il est essentiel pour les performances du système de fichiers d' éviter de déplacer des éléments de cette manière, ce qui explique la fragmentation et la défragmentation distinctes.
Combien d'espace libre sur le disque dur devrais-je laisser libre?
C'est une question plus délicate à laquelle répondre, et cette réponse s'est déjà transformée en un petit livre.
Règles de base:
Personnellement, je prends habituellement un disque plus gros quand il me reste environ 20-25% d’espace libre. Ce n’est pas lié aux performances, c’est juste que lorsque j’arriverai à ce point, je pense que je vais bientôt manquer d’espace pour les données, et il est temps d’obtenir un disque plus puissant.
Plus important que de regarder l'espace libre est de s'assurer que la défragmentation planifiée est activée le cas échéant (pas sur les disques SSD), de sorte que vous n'arriviez jamais au point où cela devient suffisamment grave pour vous affecter. Il est tout aussi important d'éviter les ajustements erronés et de laisser votre système d'exploitation agir, par exemple , ne désactivez pas le préfetcher 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 citées ici indique que le mode semi-duplex de SATA empêche la lecture et l’écriture simultanées. Bien que cela soit vrai, cela est extrêmement simpliste et n’a pour la plupart aucun lien avec les problèmes de performances abordés ici. Cela signifie simplement que les données ne peuvent pas être transférées dans les deux sens sur le réseau en même temps. Cependant, SATA a une spécification assez complexe impliquant de très petites tailles de bloc maximum (environ 8 Ko par bloc sur le câble, je pense), des files d'attente d'opérations de lecture et d'écriture, etc., et n'empêche pas les écritures dans les tampons de se produire pendant que des lectures sont en cours, entrelacées. opérations, etc.
Tout blocage qui se produirait serait dû à une compétition pour des ressources physiques, généralement atténuée par une grande quantité de cache. Le mode duplex de SATA est presque entièrement sans importance ici.
† "Ralentir" est un terme large. Ici, je l’utilise pour faire référence à des éléments liés à l’entrée / sortie (par exemple, si votre ordinateur est assiégé, le contenu du disque dur n’a aucun impact), ou liés au processeur et en concurrence avec des éléments liés de manière tangentielle. utilisation élevée du processeur (par exemple, un logiciel antivirus analysant des tonnes de fichiers).
†† Les disques SSD sont affectés par la fragmentation en ce que les vitesses d'accès séquentiel sont généralement plus rapides que les accès aléatoires, même si les disques SSD ne sont pas soumis aux mêmes limitations qu'un dispositif mécanique (même dans ce cas, le manque de fragmentation ne garantit pas l'accès séquentiel, en raison du nivellement par l'usure, etc. comme le note James Snell dans les commentaires). Cependant, dans pratiquement tous les scénarios d'utilisation générale, il ne s'agit pas d'un problème. Les différences de performances dues à la fragmentation sur les disques SSD sont généralement négligeables pour des tâches telles que le chargement d'applications, le démarrage de l'ordinateur, etc.
††† En supposant un système de fichiers sain qui ne fragmente pas intentionnellement les fichiers.