50 votes

Partager la mémoire vive sur le réseau

Mon collègue utilise une application qui consomme beaucoup de mémoire et rend le système trop lent. Est-il possible de partager la mémoire avec d'autres PC via Internet ?

Le système dispose de 8 Go de mémoire vive et l'application consomme plus de 6 Go.

165voto

Ana cleto Points 11

Je n'ai envisagé qu'une application autonome fonctionnant sur une machine "standard", sans possibilité de l'installer ailleurs ou d'utiliser du matériel ou des logiciels spécialisés. D'autres réponses traitent (correctement) de la migration des logiciels ou du matériel dédié à cette tâche.

Tout moyen de "partager la mémoire vive" via un réseau sera soumis aux limitations de ce support. Comme même l'Ethernet gigabit est limité à environ 100MB/s (mégaoctets), cela signifie que la vitesse de votre "RAM" sera également limitée.

100 Mo/s ne représente qu'une infime partie de la vitesse de la mémoire vive qui se trouve dans votre système. Votre programme sera terriblement lent et donnera l'impression de fonctionner sur un ordinateur du début des années 90.

Les disques durs modernes sont, pour la lecture et l'écriture séquentielles, légèrement plus rapides que cela. Les disques SSD sont plusieurs fois plus rapides.

C'est ignorer les problèmes de latence qui rendront votre programme plus lent d'un ordre de grandeur.

En raison de la lenteur et d'autres problèmes techniques, personne n'a jamais considéré qu'il valait la peine d'essayer de résoudre ce problème pour les systèmes "domestiques" ou "de bureau". Il est moins coûteux et plus efficace d'acheter plus de mémoire vive si nécessaire.

Il suffit d'acheter plus de RAM, ou même un SSD pour un fichier de page. Il n'y a pas d'autre moyen de le faire qui ne nécessite pas une quantité folle de travail ou de matériel pour un bénéfice minime.

76voto

Jake Points 433

Par souci d'exhaustivité : InfiniBand permet d'accéder directement à la mémoire d'autres machines.

Cependant, elle nécessite :

  • Un commutateur InfiniBand
  • Une carte InfiniBand dans chaque machine
  • L'application doit être programmée spécifiquement pour utiliser cette fonction.

Il ne fonctionne PAS sur un réseau existant, il nécessite une infrastructure totalement indépendante pour tous les nœuds connectés. Il ne fonctionne pas non plus sur l'internet

19voto

cybernard Points 12403
Is there any alternative solution?

Cela dépend fortement de la nature des données.

Vous pouvez faire fonctionner 2 serveurs mysql différents sur 2 machines différentes.

Divisez ensuite les données en deux et écrivez le programme pour qu'il sache automatiquement vers quel serveur se tourner.

Bien entendu, ce système peut être étendu à n'importe quel nombre de serveurs si vous en disposez.

16voto

Toby Speight Points 4636

Oui, c'est assez facile à faire (et je l'ai fait pour des systèmes sans disque ayant besoin de permutation), en utilisant le protocole Network Block Device.

Installer nbd-server sur la machine serveur, et le configurer pour qu'il crée automatiquement des fichiers par hôte.

Assurez-vous que vos machines clientes ont compilé NBD dans leurs noyaux, puis configurez-les pour qu'elles échangent vers un périphérique monté sur NBD. Le système nbd-client peut aider.

Désolé si ce qui précède est un peu vague - Les machines sur lesquelles j'ai fait cela ne sont pas accessibles d'ici ; je pourrai peut-être compléter les détails lorsque j'y aurai accès.

Il existe une autre implémentation du serveur NBD appelée nbdkit Je ne sais rien à ce sujet.

9voto

Damon Points 4442

Compte tenu des petits détails sans importance "Windows 10, le poste de travail a 8G B RAM" Il n'y a qu'une seule réponse sensée : Achetez plus de mémoire vive et utilisez moins de matériel de merde.

Acheter un SSD et y placer le fichier de page serait la meilleure option suivante, mais vraiment... achetez plus de RAM.

Servir le fichier de pages ("mémoire partagée") sur le réseau est bien sûr possible, mais c'est une très mauvaise idée. S'il est vrai qu'il existe des cas limites où le temps d'accès par le réseau sera meilleur que l'accès à un disque local, cela n'a rien à voir avec votre cas d'utilisation, car vous avez besoin de cohérent faible temps d'accès et une large bande passante en même temps. N'oubliez pas que vous ne prévoyez pas un ou deux défauts de page, mais que vous échangez constamment. À moins d'être prêt à débourser quelques milliers d'euros, vous n'aurez aucune chance d'acheter de la mémoire vive ou un disque SSD.

8 Go sont loin d'être suffisants pour faire fonctionner Windows 10 et une application gourmande en mémoire. C'est à peine suffisant pour faire fonctionner Word, Excel et Outlook en même temps. C'est exactement le type d'ordinateur de bureau complètement inutilisable. "Une entreprise qui raconte n'importe quoi" que des millions de personnes doivent supporter chaque jour sur leur ordinateur portable professionnel. Investissez 100 à 200 dollars dans un autre module de mémoire, et son coût sera amorti en une semaine (les choses qui prenaient des minutes prennent maintenant quelques secondes, et le temps, c'est de l'argent - malheureusement, c'est souvent difficile à faire entrer dans la tête de votre compteur de haricots local).

Si vous êtes propriétaire de la machine, vous pouvez également utiliser NTLite pour réduire l'encombrement de Windows 10 et son empreinte mémoire. Vous pouvez également désactiver 80 % des services les plus inutiles. Cela semble incroyable, mais c'est est possible pour faire fonctionner une version récente de Windows avec moins de 2 Go de RAM.

Mais vraiment, il suffit d'acheter de la RAM... c'est tellement plus rapide et plus facile que de passer des heures de votre précieux temps à réduire la merde de Windows.

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