6
votes

Les disques de l'État solide sont-ils suffisamment bons pour cesser de vous inquiéter des goulots d'étranglement du disque Io?

J'ai un programme de preuve de concept qui fait une communication interprocessée simplement en écrivant et en lisant de la HD. Oui, je sais que c'est vraiment lent; Mais c'était le moyen le plus simple d'obtenir des choses et de courir. J'avais toujours prévu de revenir et d'échanger cette partie du code avec un mécanisme qui fait toute la carte IPC (communication interprocessée) en RAM.

Avec l'arrivée de disques d'état solide, pensez-vous que le goulot d'étranglement est susceptible de devenir négligeable?

Remarques: c'est un logiciel de serveur écrit dans C # appelant des bibliothèques Numéro Number Metal-Crunching écrites en Fortran.


0 commentaires

11 Réponses :


3
votes

Je pense que vous trouverez que les goulots d'étranglement sont vient de déplacer . Comme nous nous attendons à un débit plus élevé, nous écrivons des programmes avec des demandes plus élevées.

Cela pousse les goulots d'étranglement aux bus, caches et pièces autres que le mécanisme de lecture / écriture (qui est de toute façon dans la chaîne de toute façon).

Avec un processus non lié par des E / S du disque, je pense que vous pourriez trouver qu'il devient lié par le planificateur qui limite la quantité d'instructions de lecture / écriture (comme avec toutes les instructions de processus).

Pour tirer pleinement parti de la vitesse d'E / S sans limites, vous auriez besoin d'une réponse en temps réel et d'une gestion très agressive des caches, etc.

Quand Disques obtenez plus vite , alors RAM et processeurs et la demande sur les appareils . Le goulot d'étranglement est le même, la charge de travail devient plus grosse.


1 commentaires

Le saut d'entraînements à la filature à SSD est beaucoup plus grand que le saut de la version X à la version X2 de RAM X2.



2
votes

Je ne crois pas que cela modifiera la manière dont les applications liées d'I / O sont écrites le plus tôt. Avoir des processeurs plus rapides ne faisait pas que les gens choisissent BubblesTort comme un algorithme de tri.

Les hiérarchies de la mémoire externe constituent un problème inhérent de l'informatique.


0 commentaires

2
votes

Joel On Software a un Article sur son expérience de mise à niveau vers état solide. Pas exactement le même problème que vous avez, mais ma mise à emporter était:

Les lecteurs d'état solide peuvent accélérer de manière significative les opérations liées aux E / S, mais de nombreuses choses (comme la compilation) sont toujours liées à la CPU.


0 commentaires

9
votes

La réponse courte est probablement non. Un chercheur célèbre nommé Jim Grey a donné une conversation sur le stockage et les performances qui comprenaient Cette grande analogie . En supposant que votre cerveau puisque le processeur, accéder à un registre prend une tique de l'horloge (numéros à gauche) qui équivaut à peu près à ces informations dans votre cerveau. L'accès à la mémoire prend 100 ticks d'horloge, donc à peu près équivalent à obtenir des données quelque part dans la ville que vous vivez. L'accès à un disque standard prend environ 10 ^ 6 ticks, ce qui correspond à l'équivalent aux données étant sur PLUTO. Où l'état solide l'adapte-t-il? La technologie SSD actuelle est quelque part entre 10 ^ 4-10 ^ 5 selon lesquelles vous demandez. Bien qu'ils puissent être un ordre de grandeur plus rapide, il reste encore un immense écart entre la lecture de la mémoire et la lecture de disque. C'est pourquoi la réponse à votre question n'est probablement pas non plus, car aussi vite que les SSDS deviennent, ils seront toujours considérablement plus lents que le disque (au moins dans un avenir prévisible).


4 commentaires

Un ordre de grandeur plus proche que Pluton serait à propos de Mars. Deux ordres de grandeur seraient à propos de la lune. Notez que vous n'êtes toujours pas un astronaute.


TokenmacGuy: En fait, la Lune et Mars sont environ deux ordres de grandeur, pas un (à l'aide de la base 10, évidemment plus à la base e)


@Drjokepu, tu as raison. Une commande de magnitude concerne Jupiter (~ 4 au VS PLUTO'S ~ 40 AU). Trivia astronomique inutile.


@jkupferman, par vos numéros, n'est-ce pas RAM toujours 100 à 1000 fois plus rapide que SSD?



-2
votes

Mais c'était le moyen le plus simple de faire fonctionner les choses. Je trouve généralement que c'est beaucoup moins cher de penser une bonne une fois avec votre propre tête que de faire penser que la CPU de penser des millions de fois en vain.


0 commentaires

1
votes

Les lecteurs de l'état solides font une amélioration importante du débit de l'IO, et c'est le fait que sur des disques d'état solides, la localité bloquante est moins d'un problème de multimédia en rotation. Cela signifie que les applications IO hautes performances peuvent changer de concentration des structures qui disposent des données accédées afin de les structures qui optimisent IO d'une autre manière, telles que en conservant des données dans un seul bloc au moyen de la compression. Cela dit, même des disques de l'état solides bénéficient de modèles d'accès linéaire, car ils peuvent préconiser des blocs ultérieurs dans un cache de lecture avant que l'application ne la demande.

Une régression notable sur les disques d'état solides est que les écritures prennent plus de temps que des lectures, bien que les deux soient toujours généralement plus rapides que les lecteurs rotatifs, et la différence se réduit avec des disques d'état solides plus récents et haut de gamme.


2 commentaires

Oui ... Tout le monde Sait SSD est plus rapide. Mais vous avez manqué la question totalement.


@Pacerier: Cette question, ainsi que cette réponse, les 6 ans, un moment où tout tout le monde savait quelles étaient les compromis des SSD. Pire encore, la question est falsifiée plus ou moins comme un «oui / non» où la vérité est une collection de compromis. Ma réponse visait aux compromis non mentionnés par d'autres réponses (à l'époque, elle a été répondue).



2
votes

J'ai un lecteur d'état solide et non, cela n'éliminera pas les E / S comme un goulot d'étranglement. Le SSD est sympa, il n'est pas que gentil.

Il n'est pas difficile de maîtriser les primitives IPC de votre système ou de construire quelque chose sur TCP. Mais si vous voulez coller avec votre disque de disque et la rendre plus rapide, RAMDISK ou TMPFS pourrait faire le tour.


1 commentaires

Alors combien de plus de processeur avez-vous encore laissez-vous généralement lorsque vos tuyaux SSD sont pleins?



0
votes

Non, malheureusement pas. Ils le rendent plus intéressant cependant: les lecteurs SSD ont des lectures très rapides et aucune heure de synchronisation, mais leurs écritures sont presque aussi lentes que des disques durs normaux. Cela signifie que vous voudrez lire la plupart du temps. Cependant, lorsque vous écrivez sur le lecteur, vous devez écrire autant que possible dans le même endroit depuis que les disques SSD ne peuvent écrire que des blocs entiers à la fois.


1 commentaires

Eh bien, mon expérience est que le comportement diffère entre les types SSD. Pour les anciens SSDS, c'est absolument vrai (<100 io / s). Pour le SSD actuel, par exemple Intel X25-E, OCZ Vertex, j'ai également trouvé de très bons taux d'écriture.



2
votes

non. Les SSD actuels sont conçus comme des remplacements de disque. Chaque couche, du contrôleur SATA au pilote du système de fichiers traite comme stockage.

Ce n'est pas un problème de la technologie sous-jacente, Nand Flash. Lorsque NAND Flash est directement mappé dans la mémoire et utilise un système de stockage de journal tournant au lieu d'un système de fichiers basé sur des fichiers nommés, cela peut être assez rapide. Le problème fondamental est que Nand Flash ne réalise que bien dans les mises à jour des blocs. Les mises à jour de métadonnées de fichiers causent des opérations coûteuses en lecture-écriture. De plus, les blocs NAND sont beaucoup plus gros que les blocs de disque typiques, ce qui n'aide pas la performance non plus.

Pour ces raisons, l'avenir des SSD sera de meilleurs SSD mis en cache. DRAM va cacher les frais généraux d'une mauvaise cartographie et une petite sauvegarde SuperCap permettra à la SSD de s'engager écrit plus rapidement.


2 commentaires

DRAM est-il toujours plus lent que la RAM?


@Pacerier: Cela n'a pas de sens. DRAM est une forme de RAM, de même que SRAM. DRAM est plus lent que SRAM, cependant.



0
votes

Que diriez-vous d'utiliser un lecteur de RAM au lieu du disque? Vous n'auriez pas à réécrire quoi que ce soit. Il suffit de le signaler à un autre système de fichiers. Windows et Linux les ont tous deux. Assurez-vous de disposer de beaucoup de mémoire sur la machine et de créer un disque virtuel avec suffisamment d'espace pour votre traitement. Je l'ai fait pour un système qui a écouté plusieurs protocoles sur un réseau réseau. Je n'ai jamais neuf quel paquet j'allais chercher et il y avait trop de données pour le garder en mémoire. Je l'écrirais à la Ram Drive et, lorsque quelque chose a été terminé, je le déplacerais et je laisse un autre processus le faire sortir du lecteur de RAM et sur un disque physique. J'ai pu suivre des cartes de réseau de classe de serveurs vraiment occupées de cette manière. Bonne chance!


0 commentaires

0
votes

Quelque chose à garder à l'esprit ici:

Si la communication implique des messages fréquents et se trouve sur le même système, vous obtiendrez de très bonnes performances car Windows n'écrira pas les données en premier lieu.

J'ai dû recourir à cela une fois et j'ai découvert cela - la lumière de la conduite pas est arrivée tant que les données ont été écrits.


2 commentaires

C'est probablement dû à vos paramètres. Vous deviez régler l'USB sur Auto-Flush.


@Pacerier Non, c'était le disque dur principal, pas un lecteur flash. J'avais besoin de communiquer rapidement un tas de données de DOS à Windows, je me suis retrouvé simplement à écrire un morceau de données sur et sur plusieurs fois par seconde, l'autre programme a lu et agi sur ce qu'il a trouvé. Méga-kludge mais cela a fait le travail.