Comment la compression NTFS affecte-t-elle les performances?

57

J'ai entendu dire que la compression NTFS pouvait réduire les performances en raison d'une utilisation accrue du processeur, mais j'ai lu des rapports selon lesquels elle pourrait en réalité augmenter les performances en raison d'une lecture réduite du disque. Comment la compression NTFS affecte-t-elle exactement les performances du système?

Remarques:

  • J'utilise un ordinateur portable avec un disque dur à 5 400 tr / min, et beaucoup de choses que je fais dessus sont liées aux entrées / sorties.
  • Le processeur est un processeur AMD Phenom II à quatre cœurs fonctionnant à 2,0 GHz.
  • Le système est défragmenté régulièrement avec UltraDefrag .
  • La charge de travail est mixte lecture-écriture, les lectures se produisant un peu plus souvent que les écritures.
  • Les fichiers à compresser comprennent un sous-ensemble sélectionné de documents personnels (pas le dossier de départ complet) et de programmes, y compris plusieurs jeux (moins exigeants) et Visual Studio (qui est généralement lié à des entrées / sorties).
bwDraco
la source
12
Je pense que la seule bonne réponse est "mesurez-le sur votre système".
Mehrdad
Je pense que cela devrait rester une question générique. Le processeur est plus rapide que la mémoire. Aujourd'hui. Supposons que. A propos de la performance? Aucune idée, mais je suis curieux aussi.
Apache
1
De quel système s'agit-il? combien avez-vous de noyaux? étant un fonctionnement intensif du processeur, aurez-vous un peu plus de processeur supplémentaire par rapport à la vitesse du disque dur pour les opérations que vous allez effectuer? L'effet sur la consommation d'énergie et les températures. La compressibilité des données. combien coûte Read et combien écrit La compression est lente au début, mais sa lecture (dépendante) devrait être plus rapide avec des montants facilement mesurables.
Psycogeek
Connexes (mais avec des circonstances légèrement différentes; spécifiques à un dossier comportant de nombreuses icônes): superuser.com/questions/38605/…
bwDraco
1
Btw une chose que vous pouvez essayer, est de défragmenter. J'ai entendu des merveilles à propos d'UltimateDefrag, mais je n'ai jamais essayé jusqu'à présent. (Parmi Diskeeper et PerfectDisk, j'utilise ce dernier, puisque Diskeeper a cessé de publier de nouvelles versions, etc.)
Apache

Réponses:

36

J'ai entendu dire que la compression NTFS pouvait réduire les performances en raison d'une utilisation accrue du processeur, mais j'ai lu des rapports selon lesquels elle pourrait en réalité augmenter les performances en raison d'une lecture réduite du disque.

Correct. En supposant que votre processeur, en utilisant un algorithme de compression, puisse compresser à C Mo / s et décompresser à D Mo / s, et que votre disque dur a une vitesse d'écriture W et une vitesse de lecture R. Tant que C> W, vous obtenez un gain de performances lorsque l'écriture, et tant que D> R, vous obtenez un gain de performance lors de la lecture. Ceci est une hypothèse drastique en écriture, puisque l’algorithme de Lempel-Ziv (tel qu’implémenté dans le logiciel) a un taux de compression non déterministe (même s’il peut être contraint avec une taille de dictionnaire limitée).

Comment la compression NTFS affecte-t-elle exactement les performances du système?

Eh bien, c’est exactement en s’appuyant sur les inégalités ci-dessus. Tant que votre processeur peut supporter un taux de compression / décompression supérieur à la vitesse d'écriture de votre disque dur, vous devez bénéficier d'un gain de vitesse. Toutefois, cela a un effet sur les fichiers volumineux, qui peuvent subir une fragmentation importante (due à l'algorithme) ou ne pas être compressés du tout .

Cela peut être dû au fait que l'algorithme de Lempel-Ziv ralentit à mesure que la compression progresse (car le dictionnaire continue de croître, nécessitant davantage de comparaisons à mesure que des bits entrent). La décompression correspond presque toujours au même taux, quelle que soit la taille du fichier, dans l'algorithme de Lempel-Ziv (le dictionnaire pouvant uniquement être adressé à l'aide d'un schéma base + décalage).

La compression a également une incidence sur la disposition des fichiers sur le disque . Par défaut, une seule "unité de compression" correspond à 16 fois la taille d'un cluster (la plupart des systèmes de fichiers NTFS de 4 ko nécessiteront donc des morceaux de 64 ko pour stocker les fichiers), sans dépasser 64 ko. Toutefois, cela peut affecter la fragmentation et les besoins en espace sur le disque.

En conclusion, la latence est une autre valeur intéressante de la discussion. Bien que le temps réel nécessaire pour compresser les données introduise effectivement une latence, lorsque la vitesse d'horloge de la CPU est en gigahertz (chaque cycle d'horloge est inférieur à 1 ns), la latence introduite est négligeable comparée aux vitesses de recherche de disque dur ordre de millisecondes ou des millions de cycles d'horloge).


Pour savoir si vous ferez l'expérience d'un gain de vitesse, vous pouvez essayer quelques solutions. La première consiste à analyser votre système avec un algorithme de compression / décompression basé sur Lempel-Ziv. Si vous obtenez de bons résultats (C> W et D> R), vous devriez alors essayer d’activer la compression sur votre disque.

À partir de là, vous voudrez peut-être faire plus de tests sur les performances réelles du disque dur. Une référence vraiment importante (dans votre cas) serait de voir à quelle vitesse vos jeux se chargent et à quelle vitesse vos projets Visual Studio se compilent.

TL, DR: la compression peut être viable pour un système de fichiers utilisant de nombreux petits fichiers nécessitant un débit élevé et une latence faible. Les fichiers volumineux ne sont (et ne devraient pas être) affectés en raison de problèmes de performances et de latence.

Percée
la source
Pouvez-vous lier des tests d'évaluation basés sur des algorithmes de compression / décompression basés sur Lempel-Ziv?
user1075375
La fragmentation créée par la compression NTFS (et ajoutée lors de la modification d'un fichier) supprimera facilement toute augmentation des performances. Si vous avez un ensemble de données très compressible qui ne sera pas souvent modifié et que vous défragmentez après la compression, cela peut être un gain net. Une modification après compression entraînera une mauvaise fragmentation. Re: benchmarks: aujourd'hui, même les processeurs lents sont rapides en LZ. La question de la fragmentation est de loin le plus gros problème. C'est un cas classique où une optimisation n'est utile que dans des contextes limités. Choisissez très soigneusement ce que vous voulez compresser avec NTFS et ce sera une victoire globale.
Jody Lee Bruchon
1
Et qu'en est-il des disques SSD?
Violet Giraffe
Comment pourrais-je mesurer C, D, W et R?
Geremia
J'apprécierais quelques exemples typiques pratiques pour ces abstractions "C> W et D> R"? Est-il avantageux, par exemple, de compresser "Program Files" et / ou "Windows" sur un ordinateur portable 4 coeurs avec disque dur? et avec SSD? La consommation de la batterie sera-t-elle affectée de manière significative?
kxr
7

Vous avez un disque assez lent, votre question a donc du mérite. La compression NTFS nécessite beaucoup de ressources processeur et est conçue pour la vitesse plutôt que pour l'efficacité de la compression.

Je m'attendrais à ce que vous voyiez une (très) petite amélioration pour les opérations de lecture. Cependant, lors de l'accès à un fichier résidant dans le cache système, vous aurez un impact négatif sur les performances car il devra être décompressé à nouveau à chaque accès.

Vous verrez bien sûr que les opérations d'écriture seront plus lentes à cause de la compression supplémentaire.

La copie de fichiers sur ce même disque NTFS nécessite une décompression et une compression, ce sont donc eux qui en souffriront le plus.

La compression NTFS peut également augmenter considérablement la fragmentation, mais cela ne pose pas de problème pour la plupart des ordinateurs "typiques" soumis à des charges de travail "typiques".

De nombreux types de fichiers, tels que les images JPEG ou les fichiers vidéo ou .zip, sont fondamentalement incompressibles. Par conséquent, leur utilisation sera plus lente et l’espace économisé.

Les fichiers plus petits qu'un cluster de disques (généralement 4K) ne sont pas compressés, car ils ne génèrent aucun gain. Cependant, une taille de cluster encore plus petite est parfois conseillée lors de la compression du volume entier.

La compression NTFS est recommandée pour les volumes ou fichiers relativement statiques. Il n'est jamais recommandé pour les fichiers système ou le dossier Utilisateurs.

Mais comme la configuration matérielle varie d’un modèle d’ordinateur à l’autre, en fonction du disque, du bus, de la mémoire vive et du processeur, seuls les tests indiquent l’effet exact de la compression sur votre modèle d’ordinateur.

harrymc
la source
5

Je l'ai expliqué ici dans l'entrée Wikpedia pour NTFS:


NTFS peut compresser des fichiers en utilisant l'algorithme LZNT1 (une variante du LZ77 [23]). Les fichiers sont compressés en fragments de 16 grappes. Avec des clusters de 4 ko, les fichiers sont compressés en morceaux de 64 ko. Si la compression réduit les 64 Ko de données à 60 Ko ou moins, NTFS traite les pages inutiles de 4 Ko comme des clusters de fichiers fragmentés vides - elles ne sont pas écrites. Cela permet des temps d'accès aléatoires non déraisonnables. Cependant, les fichiers compressibles volumineux deviennent très fragmentés car chaque fragment de 64 Ko devient un fragment plus petit. [24] [25] Microsoft ne recommande pas la compression pour les fichiers de plus de 30 Mo en raison de l'impact négatif sur les performances.

La meilleure utilisation de la compression concerne les fichiers répétitifs, écrits rarement, généralement accédés de manière séquentielle et non eux-mêmes compressés. Les fichiers journaux sont un exemple idéal. La compression de fichiers de moins de 4 ko ou déjà compressés (tels que .zip, .jpg ou .avi) peut les rendre plus volumineux et plus lents. [Citation requise] Les utilisateurs doivent éviter de compresser les exécutables tels que .exe et .dll (ils peuvent être paginé en pages de 4 ko). La compression des fichiers système utilisés au démarrage, tels que les pilotes, NTLDR, winload.exe ou BOOTMGR peut empêcher le système de démarrer correctement. [26]

Bien que l'accès en lecture-écriture aux fichiers compressés soit souvent, mais pas toujours [27] transparent, Microsoft recommande d'éviter la compression sur les systèmes serveur et / ou les partages réseau contenant des profils itinérants, car cela représente une charge considérable pour le processeur [28].

Les systèmes mono-utilisateur avec un espace disque limité peuvent bénéficier de la compression NTFS pour les petits fichiers, de 4 Ko à 64 Ko ou plus, en fonction de la compressibilité. Les fichiers de moins de 900 octets environ sont stockés avec l'entrée de répertoire dans la MFT. [29]

Le lien le plus lent d'un ordinateur n'est pas le processeur, mais la vitesse du disque dur. La compression NTFS permet donc de mieux utiliser l'espace de stockage limité et lent, à la fois en termes d'espace et (souvent) de vitesse. [30] (Cela suppose que les fragments de fichier compressés soient stockés consécutivement.)


Je recommande la compression uniquement pour les fichiers compressés à 64 Ko ou moins (1 pièce). Sinon, votre fichier sera composé de nombreuses fractions de 64 Ko ou moins.

MyDefrag fait un meilleur travail de défragmentation.

TomTrottier
la source
Mon expérience avec UltraDefrag est qu’elle fait un travail décent, offrant une défragmentation plus complète que le défragmenteur intégré de Windows, mais pour autant que je sache, elle n’est pas aussi intelligente que MyDefrag. J'utilise la version 6 bêta, qui comporte quelques bogues et des fonctionnalités non implémentées, mais qui est beaucoup plus rapide que les versions précédentes.
bwDraco
1

Cela ralentira les opérations. Malheureusement, nous ne pouvons pas mesurer exactement dans quelle mesure cela affectera votre système. Lorsqu'un fichier compressé est ouvert, le processeur est nécessaire pour le décompresser afin que le système puisse l'utiliser. Lorsque vous avez terminé et que vous cliquez sur Enregistrer, il utilise davantage de puissance de traitement pour le compresser à nouveau. Cependant, vous seul pouvez mesurer la performance.

Canadien Luke REINSTATE MONICA
la source
4
Je pense que vous avez mal compris le sens de la question. Il y a un compromis entre prendre plus de temps pour compresser / décompresser des données et prendre moins de temps pour lire des données sur le disque (en vertu de la lecture de moins de données). Donc, votre affirmation n'est pas garantie. Un exemple évident où la compression peut facilement être gagnante est lorsque vous lisez un système de fichiers réseau. Avec un système de fichiers local, le résultat est moins clair, mais il n’est pas garanti que cela ira dans un sens ou dans l’autre.
jjlin
@jjlin Avez-vous des exemples de moments où c'est plus rapide?
Canadien Lu REINSTATE MONICA le
@ Luke supposons que votre processeur, utilisant un algorithme de compression, puisse compresser à C Mo / s et décompresser à D Mo / s, et que votre disque dur a une vitesse d'écriture W et une vitesse de lecture R. Tant que C> W, vous obtenez un gain de performance lors de l'écriture, et tant que D> R, vous obtenez un gain de performance lors de la lecture.
Percée
@ Luke, il est plus rapide lorsque vous l'utilisez sur des lecteurs lents, tels que les anciens pilotes IDE ou les clés USB.
Kurast
-1

tous ceux qui voient cela aujourd’hui doivent savoir que, même dans le cas des jeux vidéo, même ceux qui sont régulièrement corrigés, permettre la compression sur le lecteur ou le dossier peut réduire les temps de chargement, même sur les processeurs les plus lents d’aujourd’hui, et même sur les ssd les plus rapides que la plupart des gens ne possèdent pas), vous devez défragmenter régulièrement cependant, et je recommande fortement l’achat du disque parfait, une fois que vous utilisez sa défragmentation "intelligente agressive", APRÈS la compression, laissez sa fonction de prévention automatique de la rupture activée, elle gardera un œil sur sur activité et auto-optimisation pour éviter la fragmentation, à très peu, voire aucune perforation (à tester jusqu’à l’ancien quadrilatère de première génération de Amd et Intel sur Windows moderne enfait récemment)

beaucoup de fichiers de jeu se compressent insensément bien, certains jeux ont des fichiers qui prennent beaucoup de place sur le disque, bien qu’ils soient presque vierges ... un jeu que j’ai compressé il ya un certain temps est passé de 6 Go dans l’un de ses dossiers à moins de 16 Mo ..... je plaisantais ... parler de perte d’espace et de perte d’E / S ....)

compressé un dossier vapeur de copains il y a quelque temps, il a fallu 4 jours pour le compresser (son lecteur a 4 To et il a commencé au 3/4 complet), quand cela a été fait ... il utilisait environ 1/3 du total du lecteur, Defrag a pris un autre jour (mais, ça a commencé horriblement fragmenté parce qu’il n’avait jamais fait de défragmentation dessus, jamais .. malgré le fait que plusieurs mmo soient dessus ... et des tas de jeux de vapeur / uplay / origine / etc dessus ... )

NE COMPRESSEZ PAS vos dossiers de photos / images, cela ne servira à rien, et rendra simplement leur accès plus lent sur des systèmes lents (vous ne remarquerez même pas sur une installation 1/2 décent si ...)

J'ai compressé mes disques sur tous les systèmes depuis NT4, MAIS, de manière sélective, je vais décompresser les dossiers où la compression fait plus de mal que de bien, ce sont les "meilleures pratiques" que nous avons imaginées il y a longtemps en tant que joueurs, geeks, "ça "les gars (avant c'était un terme), et, ça reste vrai, honnêtement, je souhaiterais qu'ils aient un moyen plus précis de compresser les disques / données, il y avait un outil qui n'était pas gratuit mais abordable, qui vous a apporté beaucoup mieux Résultats de compression sans compresser les données qui ne devraient pas être compressées ....

En tout état de cause, même de nombreux systèmes dual core plus anciens en bénéficient globalement si vous 1. exécutez ccleaner 2. exécutez chkdsk / f à partir d'une invite de commande élevée (tapez y puis redémarrez et laissez-le exécuter le contrôle) 3. compressez le lecteur. 4. Défragmentez avec mydefrag ou mieux, disque parfait, cela prendra du temps .. 5. amendez tous les dossiers contenant des fichiers volumineux ou des images / tout autre contenu que vous ne voulez pas compresser / décompresser, décompressez le dossier ou seulement les fichiers, mon exp ici est, vous devez rarement défragmenter après cette partie du processus, mais il est préférable de vérifier.

Je comprends pourquoi certaines personnes sont contre la compression, mais, après l'avoir testé correctement utilisé, ssd ou hdd, et surtout les vieux disques lents et ssd, la compression, lorsqu'elle est utilisée correctement, peut sérieusement aider non seulement à économiser de l'espace, mais également à la performance les cœurs peuvent traiter les cycles moyens de compression / décompression plus rapidement que ceux de ces systèmes, après l'avoir testé, les générateurs SSD de première génération et les moins chers, peuvent bénéficier de la compression, pas autant que les disques durs lents dans la plupart des cas, mais a un netbook qui a un TRÈS lent, difficile à remplacer SSD dedans, ainsi qu'un beaucoup plus facile à remplacer facile d'accès fente SSDD, mais, la chose stupide ne peut pas démarrer à partir du SSD ajouté sans supprimer l'autre physiquement ... (Bios horrible, mais ... pour ce que l'unité est, c'est en fait agréable, plus puissant alors il a l'air ..en dehors de la lenteur SSD installée de telle manière que vous devez tout démonter pour y accéder ......), comprimez ce lecteur et ne disposez que de fenêtres et des applications les plus élémentaires (comme le bureau) au ralenti ssd l'a accéléré, même en lecture / écriture, parce que son processeur finit par attendre le foutu ssd..it dosnt pour le plus rapide qu'il a inséré ... J'ai suggéré de simplement mettre le chargeur de démarrage sur le ssd interne et l'os sur le ajouté, mais .. espérant finalement tuer la chose stupide en utilisant la majeure partie de celui-ci pour le fichier de page .... (ses 128gb mais, impitoyablement lent, comme j'ai des lecteurs flash USB3 qui ont mieux écrire Speads .... qui coûtent tous en vente chez newegg / amazon ......)compresser ce lecteur et ne disposer que de Windows et des applications les plus élémentaires (telles que Office) sur le ssd lent l'accélère réellement, même en lecture / écriture, car son processeur finit par attendre le foutu ssd..it dosnt pour le plus rapide un il a insallé ... j'ai suggéré de simplement mettre le chargeur de démarrage sur le ssd interne et le système d'exploitation sur le ajouté mais..hés dans l'espoir de tuer finalement la chose stupide en utilisant la plupart pour le fichier de page .... (ses 128gb mais, impitoyablement lent, comme si j’avais des lecteurs flash USB3 qui ont de meilleures épaisseurs d’écriture ... qui coûtent tout en vente chez newegg / amazon ......)compresser ce lecteur et ne disposer que de Windows et des applications les plus élémentaires (telles que Office) sur le ssd lent l'accélère réellement, même en lecture / écriture, car son processeur finit par attendre le foutu ssd..it dosnt pour le plus rapide un il a insallé ... j'ai suggéré de simplement mettre le chargeur de démarrage sur le ssd interne et le système d'exploitation sur le ajouté mais..hés dans l'espoir de tuer finalement la chose stupide en utilisant la plupart pour le fichier de page .... (ses 128gb mais, impitoyablement lent, comme si j’avais des lecteurs flash USB3 qui ont de meilleures épaisseurs d’écriture ... qui coûtent tout en vente chez newegg / amazon ......)hes espérant finalement finir par tuer la chose stupide en utilisant la majeure partie de celui-ci pour le fichier de page .... (ses 128gb mais, impitoyablement lent, comme si j'avais des clés USB 3 qui ont de meilleures écritures .... qui coûtent tout en vente à newegg / amazon ......)hes espérant finalement finir par tuer la chose stupide en utilisant la majeure partie de celui-ci pour le fichier de page .... newegg / amazon ......)

Je suggère fortement de compresser au moins votre lecteur / dossier de jeux ... mon dieu le dif qui peut faire même sur des systèmes rapides !!!

Una Salus Victis
la source
la plupart des jeux compressent déjà leurs données, qui ne peuvent plus être compressées
M.kazem Akhgary
-2

Windows compresse les données non utilisées récemment dans la RAM, même les disques SSD ne représentant qu'une fraction de la vitesse, je suppose que l'impact sur les performances n'est pas un problème. Je suis plus préoccupé par les blocs compressés qui développent une erreur 1-2 bits et ne peuvent pas récupérer une partie ou la totalité des données ... ou une erreur de dictionnaire dans le pire des cas. Tout ce qui produit un disque illisible sur d'autres systèmes d'exploitation et potentiellement moins fiable ne vaut pas la vitesse supplémentaire qu'il apporte (à mon humble avis). Les fichiers de texture Videogame et autres sont généralement déjà compressés, donc je ne vois pas en quoi un autre jeu de compression améliorerait les choses. J'aimerais voir un système d'exploitation qui prend en charge le marquage des fichiers comme une disposition linéaire sur la géométrie du disque, de sorte que la lecture aléatoire ne soit pas utilisée. Il accélère les choses même sur les SSD pour certains cas d'utilisation. Mon autre problème avec la compression est que, puisque les images et les vidéos sont déjà compressées, de même que les documents MS Office et de nombreux autres formats, vous êtes coincé en train de marquer des fichiers comme compressibles et de les gérer de manière microscopique. Pour une arborescence source Linux ou un grand projet open source, cela pourrait être très utile, car la compression est généralement optimale pour les fichiers texte.

Guesty McGuesterson
la source
1
Pour clarifier le problème de la géométrie linéaire, nous allons principalement aider les disques durs et les fichiers de plus de 500 Mo environ. J'ai déjà travaillé avec des fichiers TIFF de 500 Go avant de bénéficier d'un chargement important. Windows essaie de le faire, mais cela nécessite une défragmentation régulière du lecteur et une taille de cluster appropriée qui peut ne pas être optimale pour d'autres applications. Pour contourner ce gâchis, j'utilise un disque SSD au démarrage, un lecteur de 2 To pour les projets de musique / film, 2 To pour les fichiers RAW de DSLR et un disque de 4 To qui stocke d'énormes quantités de code source que je pourrais compresser pour un gain considérable espace.
Guesty McGuesterson
1
Idéalement, j'aimerais un deuxième disque SSD uniquement pour les "fichiers de programme" afin de limiter les conflits entre les fichiers système et ceux-ci, mais Windows a tendance à faire échouer les tentatives de configuration après quelques semaines. Je peux faire D: \ Program Files ou autre chose, mais trop de programmes sont codés en dur pour mettre la merde sur le lecteur système littéralement partout.
Guesty McGuesterson
-2

La compression Microsoft Windows NTFS ne doit être utilisée que pour les fichiers journaux ou, de manière générale, pour les fichiers texte ou pour des fichiers hautement compressibles.

Considérez ceci: historiquement, la compression de fichier était bloquée à 20-25 MiB / s. C'est la vitesse normale pour compresser un fichier avec un processeur 2.4-3.0Ghz. La compression NTFS n'est pas multithread. Ceci est un énorme problème!

Considérez une vitesse décente pour un disque dur actuel est de 100 Mio / s. Si vous n'obtenez pas une compression de 4-5x, vous perdez énormément de performances à la fois en lecture et en écriture. C'est ce qui se passe.

Alessandro Zigliani
la source