136 votes

Si la mémoire vive n'est pas chère, pourquoi ne pas tout charger en mémoire vive et tout faire fonctionner à partir de là ?

La RAM est bon marché et beaucoup plus rapide que les SSD. Elle est juste volatile. Alors pourquoi les ordinateurs n'ont-ils pas BEAUCOUP de RAM et, à la mise sous tension, ne chargent-ils pas tout dans la RAM à partir du disque dur/SSD et ne font-ils pas tout fonctionner à partir de là, en supposant qu'il n'y a pas de réel besoin de faire persister quoi que ce soit en dehors de la mémoire ? Les ordinateurs ne seraient-ils pas beaucoup plus rapides ?

Bien sûr, le système d'exploitation actuel peut ne pas le supporter du tout, mais y a-t-il une raison pour que la RAM ne soit pas utilisée de cette façon ?

4voto

Dee Points 240

Brève explication :

La première fois qu'une application est exécutée, elle est transférée du disque dur ou du réseau vers la mémoire vive. Donc, ne vous inquiétez pas, vous le faites déjà.

Mais, généralement, il n'y a pas qu'un seul fichier d'application/processus et il y a des opérations d'E/S ciblées sur le disque dur ou le réseau (autres fichiers de l'application ou autres opérations d'E/S avec le système, etc. ), qui peuvent ralentir votre application. Ces opérations peuvent être dirigées vers le disque RAM, mais vous devez tenir compte du fait que le disque RAM s'efface à la mise hors tension et doit être rempli à nouveau au démarrage.

Et la RAM n'est pas aussi bon marché que ce qui est présenté dans la question. Il faut compter non seulement le coût de la RAM, mais aussi le coût de la RAM fonctionnelle, y compris les supports sur votre carte mère (ceux-ci sont limités/rare et donc plus précieux) et le coût des données perdues, lorsque l'alimentation est coupée.

Par exemple, un ordinateur avec un disque dur de 1 To peut être acheté à bas prix et il s'agit d'informatique domestique, tandis qu'un ordinateur avec 1 To de RAM se situe dans la gamme des superordinateurs. (mais Intel travaille sur quelque chose de moyen de gamme : http://vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html )

4voto

Bob Points 319

C'est une GRANDE question et je trouve les réponses fascinantes. Je vais la commenter en tant que DBA Oracle et mes réponses sont SPECIFIQUES à la base de données Oracle. Il s'agit d'une erreur majeure que beaucoup de personnes commettent lorsqu'elles travaillent avec Oracle. Je ne suis pas sûr que cela s'applique également à d'autres applications. Il ne s'agit pas d'un hors-sujet, mais d'une réponse spécialisée.

Lorsque vous réglez les performances avec Oracle, vous cherchez vraiment à éliminer les goulets d'étranglement. Bien que la plupart d'entre nous ne le disent pas, cette approche est basée sur la théorie des contraintes : https://en.wikipedia.org/wiki/Theory_of_constraints

La mémoire n'est peut-être pas votre goulot d'étranglement. Oracle dispose de mécanismes complexes pour gérer la mémoire et le simple fait d'augmenter la mémoire peut en fait ralentir les choses si le goulot d'étranglement se situe dans d'autres domaines. Permettez-moi de vous donner un exemple TRÈS courant.

Les requêtes semblent être lentes. Le consensus est que si nous augmentons la RAM, nous devrions augmenter le temps de réponse des requêtes puisque la mémoire est plus rapide que le disque. Eh bien... Voici comment Oracle gère la mémoire pour les données. Oracle a une variété d'emplacements de mémoire qui sont alloués à des tâches spécifiques. Vous pouvez donc augmenter ces mémoires. La zone utilisée pour les données s'appelle le 'buffer cache'. Il s'agit d'une série de listes liées (dont le nombre a tendance à augmenter à chaque version). Chaque fois qu'un bloc est trouvé sur le disque lors d'une requête, un algorithme de hachage est exécuté sur celui-ci pour déterminer dans quelle liste le placer. L'endroit où le placer dans la liste est basé sur un algorithme de comptage des touches (expliqué sur le site de support Oracle, donc vous devez payer pour l'obtenir... ce n'est pas vraiment important).

CEPENDANT, lorsque vous exécutez une requête, Oracle prend un verrou sur la chaîne de tampons que vous recherchez à ce moment-là. Ce verrou (remarque : il ne s'agit pas d'un verrou. Cherchez la différence dans Google) bloque toutes les autres opérations sur cette chaîne pendant la durée de votre lecture. Il bloque donc les lectures ET les écritures (ce qui est totalement différent de l'affirmation d'Oracle selon laquelle les verrous ne bloquent pas les lectures).

Cela est nécessaire car, lorsque vous lisez le bloc dans la chaîne, Oracle le déplace en fonction de la fréquence à laquelle il est "demandé". Les blocs les plus fréquemment demandés sont déplacés vers le haut et les blocs moins fréquemment demandés sont laissés en bas et vieillis. Vous ne pouvez pas avoir deux sessions de lecture d'une liste chaînée et de déplacement de blocs, sinon vous rencontrerez des pointeurs qui pointent vers des emplacements inexistants.

Lorsque vous augmentez la taille de la mémoire, vous augmentez la taille de chaque liste liée. Cela augmente le temps nécessaire à la lecture de la liste. Une seule requête pauvre ou une requête complexe peut faire des dizaines de milliers, voire des millions de lectures dans des listes liées. Chaque lecture est rapide, mais le nombre d'entre elles conduit à la prise de latches et celles-ci bloqueront d'autres sessions. Oracle appelle cela une "entrée/sortie logique" (ou "buffer get" ou autre chose). Ce jargon est spécifique à Oracle et peut avoir une autre signification dans d'autres secteurs de l'informatique).

Ainsi, si la liste est plus longue et que vous avez un très mauvais SQL, les instructions SQL retiendront leurs verrous plus longtemps. L'augmentation de la mémoire peut occasionnellement RÉDUIRE les performances. La plupart du temps, cela ne se produit pas. Les gens dépenseront beaucoup d'argent et ne verront aucun avantage. Ceci étant dit, il y a des moments où vous avez besoin de plus de mémoire dans le cache de la mémoire tampon, mais vous devez identifier correctement le goulot d'étranglement pour savoir si cela est approprié. Je ne peux pas discuter de la façon d'analyser cela dans ce post. Consultez les forums DBA. Certaines personnes y discutent de ce sujet. C'est assez complexe.

Quelqu'un a-t-il des exemples spécifiques avec d'autres logiciels où cela peut se produire ? Il existe un excellent livre d'affaires intitulé "The Goal" qui traite de l'allègement des contraintes dans une usine. Ce processus est très similaire à celui que les DBA d'Oracle utilisent pour évaluer les problèmes de performance. Il s'agit souvent d'une lecture standard dans les programmes de MBA. Il est très utile à lire pour les professions informatiques.

https://en.wikipedia.org/wiki/Eliyahu_M._Goldratt

3voto

Michael Points 139

La RAM est peut-être bon marché, mais pas autant que le stockage traditionnel.

J'ai un disque dur de 3 To (99 $) : Cotation du disque dur

Il vous en faudra 48 pour 3 To à 719 $ chacun : Devis RAM

Le total serait de 34 512 dollars contre 99 dollars. Sans parler du prix du matériel nécessaire pour faire fonctionner 3 To de RAM.

2voto

user249254 Points 1

Cela se fait effectivement dans certains scénarios. Si vous avez une pile système d'exploitation/application suffisamment petite, vous pouvez l'exécuter entièrement en RAM. Bien sûr, cette solution présente tous les inconvénients de la réponse acceptée. Mais c'est possible et cela se produit.

Jetez un œil à Puppy Linux, une distribution Linux populaire. Leur page "Comment ça marche" parle de l'exécution à partir de la RAM : http://puppylinux.org/wikka/howPuppyWorks

2voto

Lorenz Lo Sauer Points 918

Je pense que l'on peut répondre partiellement à cette question de la manière suivante :

Prémisse :

  • Seuls sont bon marché les types de RAM qui sont produits et vendus en grande quantité.
  • Les fabricants de RAM veulent vendre leur produit.
  • les prix bas exigent de vendre de gros volumes pour réaliser des bénéfices
  • une large base d'utilisateurs utilise une technologie de mémoire établie
  • il faut des années pour que les nouvelles technologies de mémoire soient largement adoptées
  • les emplacements de mémoire sont très limités dans les appareils toujours plus petits de ladite base d'utilisateurs.
  • la technologie mobile augmente
  • au moins 0,1% de 1Bil. Les utilisateurs de PC pourraient opter pour 128 Go de RAM ou plus (estimation).
  • Les mises à jour technologiques très demandées rapportent plus que les nouvelles générations de technologies.

Compte tenu du nombre limité d'emplacements mémoire, une solution importante consiste à utiliser des puces mémoire de plus grande capacité et de plus petites dimensions internes et/ou à les empiler en 3D. Ces deux processus ont progressé comme prévu au cours des 36 derniers mois.

La question est donc : " Taille maximale de la mémoire DDR3 " ou sémantiquement : " DDR3 : pourquoi n'y a-t-il pas de modules de mémoire supérieurs à 16 Go ? "

Et la réponse est :

La norme DDR3 autorise des capacités de puce de 512 mégabits à 8 gigabits, ce qui permet d'atteindre une taille maximale de module mémoire de 16 gigaoctets. ( src )

La DDR4 va changer cela, comme le montre cette carte technologique :

enter image description here

Résultat :

  • un marché de la mémoire semi-définitif
  • L'Apple Macbook Pro extravaganza s'arrête à 16 Go seulement
  • une demande accrue de services en nuage ou à distance (pour héberger ces machines virtuelles et ces bases de données en mémoire que de nombreux développeurs et ingénieurs seraient tout aussi heureux d'utiliser localement).
  • ... ???

Quelques mises en garde à propos de l'article détaillé de Hennes :

  • La RAM de bureau courante (DDR3) est bon marché, mais pas tout à fait aussi bon marché. : suffisamment bon marché pour que certaines personnes l'achètent en raison de leur activité intensive en données
  • La RAM perd son contenu lorsqu'elle est mise hors tension : Les humains ont abordé des problèmes plus difficiles que la mémoire volatile. Les brevets et solutions sur la "manipulation de la mémoire volatile" depuis 2010 en témoignent.
  • La RAM consomme plus d'énergie : désactiver sélectivement la mémoire inutilisée (banques) dans les appareils mobiles. De plus, 1W à 2W n'est rien en comparaison des GPU de 800W.
  • vous aurez besoin de beaucoup de prises DIMM La technologie des puces a progressé comme d'habitude, ce qui signifie que l'option de puces mémoire plus performantes n'existe pas seulement, mais que les fabricants de puces seraient heureux de vous les vendre en grande quantité.
  • vous aurez également besoin de RAM pour exécuter vos programmes en : C'est vrai. Mais le pkr298 suppose que l'ensemble du système d'exploitation et des programmes sont chargés dans la RAM, et non qu'il devrait supprimer le disque dur/SSD

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