Question Si vous activez la compression NTFS, pourquoi la charge du processeur est-elle si faible? Utilise-t-il les instructions SSE4.2 en coulisse?


J'ai un Xeon X5650 Hex-core sous Windows 7 x64.

Je fais actuellement la compression simultanée de trois disques durs NTFS, 2 To chacun, avec les commandes:

compact e: /i /c /s
compact f: /i /c /s
compact g: /i /c /s

Son obtenir une compression raisonnable: jusqu'à 40: 1, et généralement 2: 1.

La charge de processeur qui en résulte est seulement d'environ 3%

Est-ce que quelqu'un sait pourquoi la charge du processeur est si faible?

Est-ce que quelqu'un sait si le noyau de compression / décompression en temps réel Win7 utilise SSE3 ou SSSE3 ou SSE4.2 des instructions en coulisse?


4
2017-10-29 13:14


origine


Je devrais également ajouter: VMware fonctionne comme un chien si les fichiers qu'il utilise pour son disque dur virtuel sont compressés en NTFS. Cela semble aller bien dans la plupart des autres endroits du système. - Contango


Réponses:


Je m'attendrais à ce que votre utilisation du processeur soit si faible, car un certain nombre de facteurs, mais gardez tout d'abord à l'esprit que l'algorithme de compression est conçu pour la vitesse plutôt que des taux de compression élevés.

Le problème fondamental ici est de savoir si vous compressez des milliers de petits fichiers ou plusieurs Go de fichiers volumineux.

Si vous compressez des fichiers de moins de 2 Mo, je m'attendrais à ce que la plupart du temps nécessaire pour compresser les fichiers soit pris en charge par les opérations nécessaires pour trouver un fichier dans le système de fichiers, obtenir le disque dur données en arrière, puis répétez avec le petit fichier suivant. L'algorithme de compression peut probablement gérer environ 40-50 Mo / s sur une machine moderne (je m'attendrais mais je n'en suis pas certain) et les disques durs recherchent et les temps de transfert de données sont vraiment des facteurs limitant ces fichiers. être presque nul.

Pour les fichiers plus volumineux, vous devriez presque certainement voir une utilisation plus élevée du processeur. Je vois certainement au moins 1 core pop à environ 50% d'utilisation du processeur (environ 8 à 10% du total des processeurs sur mon processeur à 8 cœurs) lorsque je lui demande de compresser un grand répertoire sur mon système ...

Je pense vraiment que le temps de recherche du disque dur est votre problème ici, sinon vous devez regarder spécifiquement lequel Les cœurs sont en cours de travail lors de la compression, il se peut que la routine de compression ne puisse être utilisée que par un thread à la fois, même si je doute que cela soit le cas.


4
2017-10-29 14:17



Merci d'avoir répondu. Je pense que le goulot d'étranglement est presque entièrement dans la HD, ce qui signifie que la compression va probablement accélérer les choses (pas ralentir les choses). La clé est d'avoir un processeur qui supporte quelque chose comme SSE4.2 pour la compression avec accélération matérielle. - Contango


Oui, le nouveau SSE4.2 instructions définies dans Intel i7 et Intel Xeon X5650 peuvent être utilisés pour accélérer la compression. Étant donné que mon utilisation du processeur est de 3% tout en compressant simultanément trois disques durs de 2 To, Win7 utilise presque certainement SSE4.2 dans les coulisses de la compression au niveau du secteur NTFS.

Voir Économies d'énergie avec la compression GZIP basée sur le matériel, Tony Summers et. Al., AHA Products Group, Comtech EF Data Corporation.


3
2017-10-29 16:23





Non non non, il n'y a aucunSSS4 impliqué. Aucune des instructions SSE4 ne peut aider la méthode LZ (w / 77) utilisée par NTFS. Votre disque est trop lent pour saturer le processeur avec une compression qui est en général bonne - vous pouvez vivre avec des fichiers de disques compressés. Les problèmes commencent lorsque vous effectuez de petits changements dans des fichiers volumineux - cela va aller et relire et recompresser tous les fichiers


3
2018-01-31 15:56