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 ?

181voto

Hennes Points 63532

Il y a quelques raisons pour lesquelles la RAM n'est pas utilisée de cette façon :

  1. La RAM de bureau courante (DDR3) est bon marché, mais pas tout à fait aussi bon marché. Surtout si vous voulez acheter des DIMM relativement grands.
  2. La RAM perd son contenu lorsqu'elle est mise hors tension. Vous devez donc recharger le contenu au moment du démarrage. Supposons que vous utilisiez un disque RAM de 100 Go de la taille d'un SSD, cela signifie un délai d'environ deux minutes pendant que 100 Go sont copiés du disque.
  3. La RAM consomme plus d'énergie (disons 2-3 watts par DIMM, soit à peu près la même chose qu'un SSD inactif).
  4. Pour utiliser autant de RAM, votre carte mère aura besoin d'un grand nombre de prises DIMM et des traces qui y mènent. En général, ce nombre est limité à six ou moins. (Plus d'espace sur la carte signifie plus de coûts, donc des prix plus élevés).
  5. Enfin, vous aurez également besoin de mémoire vive pour exécuter vos programmes. Vous aurez donc besoin d'une taille de mémoire vive normale pour travailler (par exemple, 18 Go, et suffisamment pour stocker les données que vous pensez utiliser).

Cela dit : Oui, les disques RAM existent. Même si Carte PCI avec prises DIMM et comme appareils pour des IOps très élevés. (Principalement utilisés dans les bases de données d'entreprise avant que les disques SSD ne deviennent une option). Ces choses sont pas bon marché cependant.

Voici deux exemples de cartes à disque RAM bas de gamme qui sont entrées en production :

Notez qu'il existe bien d'autres façons de procéder que la simple création d'un fichier Disque RAM dans la mémoire de travail commune.

Tu peux :

  1. Utilisez un disque physique dédié pour lui avec une mémoire volatile (dynamique). Soit sous forme d'appliance, soit avec une interface SAS, SATA ou PCI[e].
  2. Vous pouvez faire de même avec un stockage sur batterie (il n'est pas nécessaire d'y copier les données initiales puisqu'il conservera son contenu tant que l'alimentation de secours restera valide).
  3. Vous pouvez utiliser des RAM statiques plutôt que des DRAM (plus simple, plus cher).
  4. Vous pouvez utiliser la flash ou un autre stockage permanent pour conserver toutes les données (Attention : la flash a généralement un nombre limité de cycles d'écriture). Si vous utilisez la flash comme seul stockage, vous venez de passer aux SSD. Si vous stockez tout en RAM dynamique et sauvegardez en flash lors de la mise hors tension, alors vous êtes revenu aux appliances.

Je suis sûr qu'il y a beaucoup d'autres choses à décrire, du RAD Amiga : réinitialiser les disques RAM survivants aux IOPS, au nivellement de l'usure et à Dieu sait quoi. Cependant, je vais faire court et ne citer qu'un seul élément supplémentaire :

Prix de la DDR3 (DRAM actuelle) par rapport aux prix des SSD :

  • DDR3 : 10 € par Go, ou 10 000 € par To.
  • SSDs : Beaucoup moins. (Environ 1/4e à 1/10e.)

72voto

Dave Sherohman Points 25122

Les systèmes d'exploitation le font déjà, avec le cache des pages :

En informatique, un cache de pages, souvent appelé cache de disque, est un cache "transparent" de pages sauvegardées sur disque, conservé en mémoire principale (RAM) par le système d'exploitation pour un accès plus rapide. Un cache de pages est généralement mis en œuvre dans les noyaux avec la gestion de la mémoire de pagination, et est complètement transparent pour les applications.

Lorsque vous lisez une page sur un disque, votre système d'exploitation charge ces données en mémoire et les y laisse jusqu'à ce qu'il ait une meilleure utilisation de cette mémoire. Si vous disposez d'une mémoire suffisante, votre système d'exploitation ne lira chaque page qu'une seule fois, puis l'utilisera en mémoire à partir de ce moment-là. La seule raison pour laquelle le système d'exploitation effectuera une véritable entrée/sortie sur le disque est s'il a besoin de lire une page qui n'est pas déjà en mémoire, ou si une page est écrite (dans ce cas, vous voulez probablement la sauvegarder sur le disque).

L'un des avantages de cette méthode est que vous n'avez pas à charger tout le disque dur en mémoire, ce qui est utile s'il ne tient pas, et signifie également que vous ne perdez pas de temps à lire des fichiers dont vos applications n'ont pas besoin. Un autre avantage est que le cache peut être supprimé dès que le système d'exploitation a besoin de plus de mémoire (il vaut mieux que la prochaine lecture de disque soit légèrement plus lente que de voir vos programmes planter parce qu'ils manquent de mémoire). De plus, il est utile que les utilisateurs n'aient pas à décider manuellement ce qui doit être dans le ramdisk ou non : Ce que vous utilisez le plus souvent sera automatiquement conservé en mémoire principale.

Si vous disposez de beaucoup de mémoire, mais que vos applications ne tournent pas aussi vite que prévu, il y a de fortes chances qu'elles soient plus lentes parce qu'elles fonctionnent en toute sécurité. Par exemple, SQLite est plusieurs fois plus rapide si vous lui demandez de ne pas attendre la fin des écritures, mais votre base de données sera complètement détruite si vous ne l'arrêtez pas proprement.

Aussi, /tmp est généralement un disque RAM sur les distributions Linux, car ce n'est pas grave si ces données sont perdues. Il y a toujours un débat sur la question de savoir si c'est une bonne idée, car si trop de données sont écrites sur le disque dur, il est possible que les données soient perdues. /tmp vous pouvez manquer de mémoire.

44voto

StephanG Points 11

Comme le souligne Alan Shutko dans son commentaire sur la question, la RAM n'est pas vraiment bon marché.

Voici quelques points de données. Lorsque je recherche sur Google 4 Go de RAM, 64 Go de SSD et 1 To de disque dur (disque dur mécanique), voici les coûts que je vois (pour le 25 août 2013) :

Whoa ! Les disques durs sont 100x moins chers que la RAM ! Et les SSD sont 8x moins chers que la RAM.

(De plus, comme indiqué dans d'autres réponses, la RAM est intrinsèquement volatile, et vous avez donc besoin d'une autre forme de stockage persistant).

9voto

blakev Points 883

Je fais toutes mes opérations immédiates de lecture/écriture pour la génération de contenu dans des disques RAM sur ma machine locale. J'y stocke également mes dossiers de journalisation MongoDB, ainsi que mes compilateurs et interpréteurs Python et ma bibliothèque standard. Ce disque est sauvegardé à l'arrêt et restauré au démarrage. Le deuxième disque RAM que j'utilise fait 64 mégaoctets et tous les dossiers de cache de mon navigateur Internet y sont stockés ; ce disque est perdu à l'arrêt et se vide de lui-même lorsqu'il est plein.

Utiliser les bons outils pour le travail, je suppose, serait la réponse que je vous donnerais. Je génère des données 30 à 1000 fois plus vite avec un disque RAM qu'avec mon Western Digital 7200rpm.

Voici le programme que j'utilise : http://www.romexsoftware.com/en-us/primo-ramdisk/

...et quand 32gigs de Ram sont à moins de 200$, je ne vois pas pourquoi cela ne devient pas plus commun.

8 gig RAM diskeveryday SATA III HDD

5voto

eyeball Points 11

Oui, c'est la prémisse de nombreuses bases de données en mémoire qui arrivent sur le marché. SAP HANA en est un exemple. L'idée est que la RAM est bon marché et que, du point de vue des performances, les opérations de lecture/écriture sur la RAM sont 1000 fois plus rapides que les opérations sur disque. La plupart des données sont donc conservées dans la RAM, puis vous définissez une stratégie de vieillissement des données qui permet de recycler les anciennes données vers le stockage froid (c'est-à-dire le disque).

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