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 :
-
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.
-
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 :
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.