web-dev-qa-db-fra.com

Devrais-je défrasser le disque dur en cours d'exécution sur une machine virtuelle?

Je sais qu'il n'y a pas de point (en fait, c'est une mauvaise idée) de courir de défragmentation sur un SSD. Qu'en est-il d'une machine virtuelle en cours d'exécution sur un SSD, devrais-je défragmenter son disque dur car il accède essentiellement au disque dur de la même manière?

18
Kris Erickson

Je défraille mes Vhds mais pour des raisons d'espace, pas de temps:

J'utilise l'option dynamiquement allouée pour VHDS, de sorte qu'elles commencent à être petites et développées au besoin. Mais comme la VHD (pas nécessairement les fichiers) devient fragmentée, il s'agrandit pour inclure tous les blocs alloués. La défragmentation du VHD est la première étape pour la compacter à nouveau.

14
JRobert

Il n'y a pas besoin de défragmenter un SSD. Un disque dur régulier doit tourner afin de trouver (les parties de) fichiers. Un SSD est comparable à la RAM, tous les fichiers sont accessibles avec le même retard.

Wikipedia états que "la performance de lecture ne change pas en fonction de l'endroit où les données sont stockées sur un SSD"

3
Simon Verbeke

Ceci est mon avis seulement, je n'ai pas de résultats de test pour le sauvegarder. Voici une approximation approximative de la façon dont les choses se produisent probablement:

OS réel:

  1. Application demande des données x (rapide)
  2. OS demande le pilote de disque pour les données x (rapide)
  3. Le disque physique récupère des données x et le renvoie au système d'exploitation (lent si fragmenté)

Voici la chaîne de commandement équivalente dans un VM:

  1. Application VM demande des données x (rapide)
  2. VM OS demande des données x (rapide)
  3. VM Host demande à Real OS d'obtenir des données x stockées dans un fichier de disque virtuel (rapide)
  4. Real OS demande à un pilote de disque d'obtenir des données x (rapide)
  5. Disque physique Fetch Data X et le renvoie au système d'exploitation (lent si fragmenté).

Comme vous pouvez le constater, dans les deux cas, la fragmentation ne devient vraiment pas un problème au stade de l'opération où le disque dur physique tente de lire les données, et cela se produit dans le système d'exploitation réel, en dehors du contexte VM. Avant cela, tout arrive probablement en mémoire.

En conclusion, puisque nous savons que les SSDS ne souffrent pas de fragmentation dans le système d'exploitation réel, et que la question de la fragmentation dans un VM n'a probablement lieu qu'à la dernière étape physique de l'opération, je devinerais que la défragmentation Votre système d'exploitation virtuel ou votre fichier de disque virtuel dans votre système d'exploitation principal n'améliorerait pas les performances sur un SSD, tout en étant préjudiciables/inutiles que de défrailler votre système d'exploitation réel.

Edit: Et si c'est correct, c'est une foutue bonne raison de mettre un VM sur un SSD! Sur un disque dur, la fragmentation à n'importe quel stade (OS invité, fichier de disque virtuel, OS réel) brisera la linéarité et provoquera une fragmentation à l'étape du disque physique.

2
mtone