78 votes

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

J'ai entendu dire que la compression NTFS peut réduire les performances en raison de l'utilisation supplémentaire du CPU, mais j'ai lu des rapports indiquant qu'elle peut en fait augmenter les performances en raison de la réduction des lectures de disque. Comment la compression NTFS affecte-t-elle exactement les performances du système ?

Notes :

  • J'utilise un ordinateur portable avec un disque dur de 5400 tours/minute, et la plupart des choses que je fais sur ce disque sont liées aux E/S.
  • Le processeur est un AMD Phenom II avec quatre cœurs fonctionnant à 2,0 GHz.
  • Le système est défragmenté régulièrement en utilisant UltraDefrag .
  • La charge de travail est mixte (lecture-écriture), les lectures étant un peu plus fréquentes que les écritures.
  • Les fichiers à compresser comprennent un sous-ensemble sélectionné de documents personnels (pas le dossier personnel complet) et de programmes, dont plusieurs jeux (moins exigeants) et Visual Studio (qui a tendance à être lié aux E/S le plus souvent).

47voto

Breakthrough Points 33693

J'ai entendu dire que la compression NTFS peut réduire les performances en raison de l'ajout d'un fichier l'utilisation du CPU, mais j'ai lu des rapports selon lesquels elle peut en fait augmenter performances en raison de la réduction des lectures de disque.

Correct. Supposons que votre CPU, utilisant un algorithme de compression, puisse compresser à C Mo/s et décompresser à D Mo/s, et que votre disque dur ait une vitesse d'écriture W et une vitesse de lecture R. Tant que C > W, vous obtenez un gain de performance en écriture, et tant que D > R, vous obtenez un gain de performance en lecture. Il s'agit d'une hypothèse radicale dans le cas de l'écriture, puisque l'algorithme de Lempel-Ziv (tel qu'il est implémenté dans le logiciel) a un taux de compression non déterministe (bien qu'il puisse être contraint par 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 CPU peut supporter un taux de compression/décompression supérieur à la vitesse d'écriture de votre disque dur, vous devriez bénéficier d'un gain de vitesse. Cependant, cela a un effet sur les fichiers volumineux, qui peuvent subir une fragmentation importante (due à l'algorithme), ou ne pas être compressé du tout .

Cela peut être dû au fait que l'algorithme de Lempel-Ziv ralentit au fur et à mesure de la compression (puisque le dictionnaire continue de croître, nécessitant plus de comparaisons au fur et à mesure que les bits arrivent). La décompression est presque toujours la même, quelle que soit la taille du fichier, dans l'algorithme de Lempel-Ziv (puisque le dictionnaire peut être adressé en utilisant un schéma base + offset).

La compression a également un impact sur la façon dont les fichiers sont disposés sur le disque . Par défaut, une seule "unité de compression" est 16 fois plus grande que la taille d'un cluster (ainsi, la plupart des systèmes de fichiers NTFS à cluster de 4 Ko nécessiteront des morceaux de 64 Ko pour stocker les fichiers), mais n'augmente pas au-delà de 64 Ko. Cependant, cela peut affecter la fragmentation et les besoins en espace sur le disque.

Pour finir, la latence est une autre valeur intéressante à discuter. Bien que le temps réel nécessaire à la compression des données introduise une latence, lorsque la vitesse d'horloge du processeur est exprimée en gigahertz (c'est-à-dire que chaque cycle d'horloge est inférieur à 1 ns), la latence introduite est négligeable par rapport aux taux de recherche des disques durs (qui sont de l'ordre de millisecondes, ou de millions de cycles d'horloge).


Pour savoir si vous allez gagner en vitesse, vous pouvez essayer plusieurs choses. La première consiste à évaluer votre système avec un algorithme de compression/décompression basé sur Lempel-Ziv. Si vous obtenez de bons résultats (par exemple, C > W et D > R), vous devriez essayer d'activer la compression sur votre disque.

À partir de là, vous pouvez effectuer d'autres tests sur les performances réelles du disque dur. Un benchmark vraiment important (dans votre cas) serait de voir à quelle vitesse vos jeux se chargent et à quelle vitesse vos projets Visual Studio se compilent.

TL,DR : Compression pourrait être viable pour un système de fichiers utilisant de nombreux petits fichiers nécessitant un débit élevé et une faible latence. Les gros fichiers ne sont (et devraient être) pas affectés par les problèmes de performance et de latence.

10voto

CaspNZ Points 4357

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


NTFS peut compresser les fichiers à l'aide de l'algorithme LZNT1 (une variante du LZ77 [23] ). Les fichiers sont compressés en blocs de 16 clusters. Avec des clusters de 4 kB, les fichiers sont compressés en morceaux de 64 kB. Si la compression réduit 64 kB de données à 60 kB ou moins, NTFS traite les pages inutiles de 4 kB comme des grappes de fichiers éparses vides. comme des clusters vides de fichiers épars - elles ne sont pas écrites. Cela permet un des temps d'accès aléatoires non déraisonnables. Cependant, les gros fichiers compressibles deviennent hautement fragmentés car chaque morceau de 64 kB devient un plus petit fragment. plus petit. [24][25] La compression n'est pas recommandée par Microsoft pour les fichiers de plus de 30 Mo en raison des pertes de performances. fichiers de plus de 30 Mo en raison de l'impact sur les performances [citation nécessaire].

La meilleure utilisation de la compression est pour les fichiers qui sont répétitifs, écrits rarement, auxquels on accède généralement de manière séquentielle et qui ne sont pas eux-mêmes compressés. Les fichiers journaux en sont un exemple idéal. La compression des fichiers de moins de 4 kB ou déjà compressés (comme les fichiers .zip, .jpg ou .avi) peut les rendre plus gros et plus lents. peuvent les rendre plus gros et plus lents [citation nécessaire]. de compresser les exécutables tels que les .exe et les .dll (ils peuvent être paginés dans et dans des pages de 4 kB). La compression des fichiers système utilisés au démarrage tels que pilotes, NTLDR, winload.exe ou BOOTMGR peut empêcher le système de démarrer correctement. système de démarrer correctement[26].

Bien que l'accès en lecture-écriture aux fichiers compressés soit souvent, mais pas toujours, un moyen d'accéder à l'information. pas toujours [27] transparent, Microsoft recommande d'éviter la compression sur les systèmes serveurs et/ou les partages réseau contenant des profils d'itinérance parce que elle fait peser une charge considérable sur 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 kB à 64 kB ou plus, selon le degré de compression. compressibilité. Les fichiers de moins de 900 octets environ sont stockés avec l'entrée de répertoire entrée de répertoire dans le MFT.[29]

Le maillon le plus lent d'un ordinateur n'est pas l'unité centrale, mais la vitesse de l'ordinateur. disque dur, la compression NTFS permet donc de mieux utiliser l'espace de stockage limité et lent, tant en termes d'espace que (souvent) de vitesse. limité et lent d'être mieux utilisé, en termes d'espace et (souvent) de vitesse[30]. suppose que les fragments de fichiers compressés sont stockés consécutivement).


Je ne recommande la compression que pour les fichiers dont la taille est inférieure ou égale à 64 Ko (c'est-à-dire 1 pièce). Sinon, votre fichier sera constitué de nombreuses fractions de 64K ou moins.

MyDefrag fait un meilleur travail de défragmentation.

7voto

harrymc Points 394411

Vous avez un disque assez lent, donc votre question a du mérite. La compression NTFS est gourmande en processeur et est réglée pour la vitesse plutôt que pour l'efficacité de la compression.

Je m'attends à ce que vous constatiez une (très) légère amélioration pour les opérations de lecture. Cependant, lorsque vous accédez à un fichier résidant dans le cache du système, vous aurez une baisse de performance, puisqu'il devra être décompressé à nouveau à chaque accès.

Vous constaterez bien sûr que les opérations d'écriture seront plus lentes en raison 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 ces derniers qui souffriront le plus.

La compression NTFS peut également augmenter la fragmentation de manière significative, mais ce n'est pas un problème pour la plupart des ordinateurs "typiques" sous des charges de travail "typiques".

De nombreux types de fichiers, tels que les images JPEG, les vidéos ou les fichiers .zip, sont fondamentalement incompressibles, de sorte que ces fichiers seront plus lents à utiliser et sans aucun gain d'espace.

Les fichiers plus petits qu'un cluster de disque (généralement 4K) ne sont pas compressés, car il n'y a aucun gain. Cependant, une taille de cluster encore plus petite est parfois conseillée lors de la compression de l'ensemble du volume.

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

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 des tests permettront de déterminer l'effet exact de la compression sur votre modèle d'ordinateur.

0voto

Luke Dennis Points 4805

Cela rendra les opérations plus lentes. Malheureusement, nous ne pouvons pas mesurer exactement dans quelle mesure cela affectera votre système. Lorsqu'un fichier compressé est ouvert, il faut de la puissance de processeur pour le décompresser afin que le système puisse l'utiliser ; lorsque vous avez terminé et que vous appuyez sur Enregistrer, il faut encore de la puissance de processeur pour le compresser à nouveau. Mais vous seul pouvez mesurer les performances.

-1voto

Toute personne qui voit ceci aujourd'hui devrait être consciente que, dans le cas des jeux vidéo, oui même ceux qui sont régulièrement patchés, l'activation de la compression sur le disque ou le dossier peut réduire les temps de chargement, même sur les cpus plus lents d'aujourd'hui, et même sur les ssd (autres que les plus rapides que la plupart des gens n'ont pas), vous devez défragmenter régulièrement cependant, et je recommande fortement d'acheter perfect disk, une fois que vous utilisez son défragmentation "Smart agressive", APRÈS la compression, laissez sa fonction de prévention automatique de la fragmentation activée, il gardera un œil sur l'activité et s'auto-optimisera pour éviter la fragmentation, avec très peu ou pas de perte de performance (testé cela jusqu'aux anciens quads de première génération d'amd et d'intel sur Windows moderne récemment).

de nombreux fichiers de jeux se compressent incroyablement bien, certains jeux ont des fichiers qui prennent de l'espace disque, bien qu'ils soient pour la plupart vides... un jeu que j'ai compressé il y a quelque temps est passé de 6gb dans un de ses dossiers à moins de 16mb..... (j'aurais aimé plaisanter... on parle d'espace gaspillé et d'I/O....)

j'ai compressé le dossier steam d'un copain il y a quelque temps, il a fallu 4 jours pour le compresser (il est sur un disque de 4 To et il a commencé aux 3/4 plein), quand c'était fini.... il utilisait environ 1/3 du disque total, la défragmentation a pris un jour de plus (mais, il a commencé horriblement fragmenté parce qu'il n'avait jamais fait de défragmentation sur lui, jamais... malgré les multi mmo sur lui... et des tas de jeux steam/uplay/origin/etc sur lui...)

NE COMPRIMEZ PAS vos dossiers d'images, cela ne servira à rien et ne fera qu'en ralentir l'accès sur les systèmes lents (vous ne le remarquerez même pas sur un ordinateur à moitié décent...).

j'ai compressé mes disques sur tous les systèmes depuis nt4, MAIS, sélectivement, je décompresserai les dossiers où la compression fait plus de mal que de bien, ce sont les "meilleures pratiques" que nous avons inventées à l'époque où nous étions des joueurs, des geeks, des "it" guys (avant que ce terme n'existe), et c'est resté vrai, honnêtement, j'aimerais qu'ils aient une façon plus fine de compresser les disques/données, il y avait un outil qui n'était pas gratuit mais abordable, qui vous donnait de bien meilleurs résultats de compression sans compresser les données qui ne devraient pas l'être....

de toute façon, même les anciens systèmes à double cœur sont globalement avantageux 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 la vérification) 3. compressez le disque. 4. défragmentez avec mydefrag ou mieux, perfect disk, cela prendra du temps 5. finissez tous les dossiers contenant de gros fichiers ou des images/autres contenus qui ne se compressent pas bien/du tout, décompressez le dossier ou juste les fichiers, mon expérience ici est que vous avez rarement besoin de défragmenter après cette partie du processus mais, c'est mieux de vérifier.

je comprends pourquoi certaines personnes sont contre la compression, mais, pour l'avoir testé, lorsqu'il est utilisé correctement, ssd ou hdd, et en particulier les vieux hdd et ssd lents, la compression, lorsqu'elle est utilisée correctement, peut sérieusement aider non seulement à économiser de l'espace mais aussi des performances, même la plupart des vieux dual cores peuvent traiter les cycles moyens de compression/décompression plus rapidement que le disque de ces systèmes ne peut bouger, Pour l'avoir testé, les ssd de première génération et les anciens modèles moins chers peuvent bénéficier de la compression, pas autant que les disques durs plus lents dans la plupart des cas, mais un ami a un netbook qui a un ssd TRES lent et difficile à remplacer, ainsi qu'un emplacement ssd beaucoup plus facile à remplacer et facile d'accès, mais cette stupide chose ne peut pas démarrer à partir du ssd ajouté sans retirer l'autre physiquement. ... (bios horrible, mais...) pour ce que l'unité est, elle est en fait agréable, plus puissante qu'elle n'en a l'air... en dehors du ssd lent qui est installé de telle manière que vous devez démonter l'ensemble pour l'atteindre......), compresser ce disque et juste avoir Windows et les applications les plus basiques (comme office) sur le ssd lent l'a en fait accéléré, même en lecture/écriture, parce que son cpu finit par attendre ce satané ssd. .il ne le fait pas pour le ssd plus rapide qu'il a installé...j'ai suggéré de mettre le boot loader sur le ssd interne et le système d'exploitation sur le ssd ajouté mais...il espère éventuellement tuer cette chose stupide en utilisant la plus grande partie pour le fichier de page....(ses 128gb mais, incroyablement lent, comme j'ai des lecteurs flash usb3 qui ont de meilleures vitesses d'écriture....qui coûtent tous en vente chez newegg/amazon......)

je suggère FORTEMENT de compresser au moins votre disque/dossier de jeux... mon dieu la différence que cela peut faire même sur des systèmes rapides ! !!

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