57 votes

NVMe ssd : Pourquoi l'écriture 4k est plus rapide que la lecture ?

J'ai un Samsung 960 Pro 512 GB SSD sur NVMe avec PCIe Gen.3x4 en fonctionnement. J'utilise le pilote NVMe Samsung 2.0.0.1607. Le SSD fonctionne bien. Cependant, je ne comprends pas pourquoi l'écriture de 4k est plus rapide que la lecture de 4k. J'utilise AS Benchmark :

enter image description here

C'est un facteur de 3 ! Y a-t-il un problème (avec mon système ou AS Benchmark) ou est-ce normal ?

84voto

Ana cleto Points 11

Les lectures de 4k vont être la chose la plus difficile que le disque puisse faire. Elles font partie des plus petites tailles de bloc que le lecteur est capable de gérer, et il n'y a aucun moyen pour le lecteur de précharger de grandes quantités de données, en fait elles sont probablement assez inefficaces si la logique de chargement du lecteur a l'intention de lire quelque chose de plus grand que 4kb.

"Les lectures normales du lecteur sont plus susceptibles d'être supérieures à 4 Ko, car il y a très peu de fichiers aussi petits, et même le fichier de page est susceptible d'être lu en gros morceaux, car il serait étrange pour un programme d'avoir "seulement" 4 Ko de mémoire paginée. Cela signifie que tout préchargement que le disque tente d'effectuer pénalise le débit du disque.

Les lectures de 4K peuvent passer par le tampon du lecteur, mais la partie "aléatoire" du test les rend totalement imprévisibles. Le contrôleur ne saura pas quand le lecteur aura de nouveau besoin des "grandes" lectures habituelles.

En revanche, les écritures de 4K peuvent être mises en mémoire tampon, en file d'attente et écrites séquentiellement de manière efficace. Le tampon du lecteur peut effectuer une grande partie du travail de capture et d'écriture pour lequel il a été conçu, et le régulateur d'usure peut même allouer toutes ces écritures de 4K au même bloc d'effacement du lecteur, transformant occasionnellement ce qui est une écriture "aléatoire" de 4K en quelque chose de plus proche d'une écriture séquentielle.

En fait, je soupçonne que c'est ce qui se passe dans les écritures "4K-64Thrd", le "64-Thrd" étant en utilisant apparemment une grande profondeur de file d'attente Ce qui indique au lecteur qu'il a une grande quantité de données à lire ou à écrire. Cela déclenche un grand nombre d'écritures groupées et permet d'approcher la vitesse d'écriture séquentielle du disque. Il y a toujours une surcharge pour effectuer une écriture de 4K, mais maintenant vous exposez pleinement le potentiel de la mémoire tampon. Dans la version de lecture du test, le contrôleur du disque, reconnaissant maintenant qu'il est soumis à une charge importante et constante, arrête de précharger les données, évite éventuellement la mémoire tampon et passe en mode de lecture "brut", se rapprochant ainsi de la vitesse de lecture séquentielle.

En gros, le contrôleur du lecteur peut faire quelque chose pour rendre une écriture de 4K plus efficace, surtout si un groupe d'entre elles arrivent au même moment, alors qu'il ne peut rien faire pour rendre une écriture de 4K plus efficace. simple La lecture 4K est plus efficace, surtout si elle tente d'optimiser le flux de données en préchargeant les données dans le cache.

16voto

D'autres réponses ont déjà expliqué pourquoi il se peut que l'écriture soit plus rapide que la lecture ; je voudrais ajouter que pour ce disque, c'est absolument normal, comme le confirment les benchmarks que vous pouvez trouver dans les revues.

L'avis de ArsTecnica

ArsTechnica a examiné le disque, à la fois votre version (512 Go) et celle de 2 To :

ArsTechnica (Ce graphique n'est pas immédiatement visible dans la revue, c'est le 5ème dans la première galerie, il faut cliquer dessus)

Les performances de ces 2 modèles sont très similaires, et leurs chiffres ressemblent aux vôtres : le disque peut lire à 37 Mo/s et écrire à 151 Mo/s.

L'avis d'AnandTech

AnandTech a également examiné le disque : il a utilisé le modèle 2 To, en calculant la moyenne des résultats des tests avec une profondeur de file d'attente de 1, 2 et 4. Voici les graphiques :

AnandTech 4K readAnandTech 4K write

Le lecteur lit à 137 Mo/s et écrit à 437 Mo/s. Ces chiffres sont beaucoup plus élevés que les vôtres, mais c'est probablement dû aux profondeurs de file d'attente plus élevées. De toute façon, la vitesse d'écriture est 3 fois supérieure à la vitesse de lecture, comme dans votre cas.

Critique de PC World

Une autre critique, par PC World Ils ont testé la version 1 To, et les résultats pour le 4K sont de 30 Mo/s en lecture et 155 Mo/s en écriture : PC World graph La vitesse d'écriture est conforme à la vôtre, mais le disque est encore plus lent en lecture. Le résultat est que le rapport est de cinq pour un, et non de trois pour un.

Conclusion

Les critiques confirment que pour ce disque, il est normal que la vitesse d'écriture pour les 4K aléatoires soit beaucoup plus rapide que la vitesse de lecture : selon le test, elle peut même être 5 fois plus rapide.

Votre disque dur est bon. Il n'y a aucune raison de penser qu'il est défectueux, ou que votre système a un problème.

8voto

Andrey Kuzmin Points 81

Le contrôleur du SSD met en cache les écritures dans la NVRAM embarquée et les transfère sur le support flash aux moments opportuns. La latence d'écriture est donc la latence d'accès au cache, typiquement 20us. Les lectures, au contraire, sont servies par le support, avec un temps d'accès de 120-150us au mieux.

1voto

user3241 Points 225

Dans le prolongement de la réponse d'Andrey, vous devez examiner les frais généraux impliqués avant que le SSD puisse signaler à l'ordinateur que l'opération est terminée.

Pour une écriture, les données doivent simplement être écrites dans un cache RAM interne. Plus tard, elles seront écrites dans la mémoire flash, avec d'autres blocs de 4k et les métadonnées nécessaires pour les vérifier, corriger les erreurs et les localiser.

Pour une lecture, le SSD doit d'abord localiser les données. L'emplacement que l'ordinateur veut lire est appelé adresse logique, et n'a pas de relation directe avec l'emplacement physique des données dans la mémoire flash. Le SSD traduit l'adresse logique en adresse physique, en se basant sur la géométrie de la mémoire flash (la façon dont les cellules sont disposées), le remappage des blocs défectueux, le nivellement de l'usure et divers autres facteurs. Il doit ensuite attendre la fin de toute autre opération avant de récupérer les données de la mémoire flash, de les vérifier et, si nécessaire, de les relire et d'appliquer une correction d'erreur, voire de réécrire le bloc entier ailleurs.

Bien que la durée totale d'une opération d'écriture puisse être plus longue que celle d'une opération de lecture typique, le temps nécessaire au SSD pour signaler que l'opération est terminée au point de pouvoir traiter d'autres commandes est inférieur. Avec de grands blocs, l'overhead n'est pas un facteur limitant, mais avec de nombreux petits blocs, il commence à limiter la vitesse de lecture/écriture.

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