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.

6voto

rackandboneman Points 780

Une alternative simple consisterait à exécuter l'application sur le PC distant éventuellement sous un compte utilisateur dédié, et le contrôler simplement via RDP, VNC ou tout autre moyen pratique.

4voto

Touseef Murtaza Points 131

Comme d'autres l'ont dit, c'est techniquement possible, mais cela n'en vaut pas la peine.

Toutefois, si vous souhaitez accélérer l'utilisation de votre ordinateur, il est possible d'externaliser certaines de vos applications vers un serveur distant.

Cela dépendra principalement de ce sur quoi vous travaillez et de l'application que vous utilisez. Si vous exécutez des programmes qui nécessitent beaucoup de temps de traitement pour une petite quantité de données, vous pouvez les faire tourner sur un serveur différent de votre ordinateur pour économiser du temps et des ressources pendant que vous travaillez sur autre chose.

L'exemple que j'ai en tête est un serveur qui teste mon code chaque fois que j'apporte une modification. L'idée d'une telle solution est qu'elle est limitée à des cas d'utilisation spécifiques.

4voto

Demandez au service informatique d'acheter plus de mémoire vive pour votre PC et démontrez-en la nécessité à l'aide d'une capture d'écran de l'utilisation de l'application dans le gestionnaire des tâches.

3voto

neofutur Points 131

Il existe une solution commerciale à ce problème, par l'intermédiaire d'une société appelée Kove. ( http://kove.net/ ). Il nécessite une infrastructure Infiniband pour fonctionner sur le "fond de panier" (l'éther). "(l'Ethernet fonctionne normalement), bien que d'autres options comme RoCE puissent être peuvent parfois être disponibles, en fonction des spécificités. Ils fournissent un un certain nombre d'interfaces transparentes pour permettre une intégration sans modification du code, et des API pour le contournement du noyau avec un accès plus direct à l'unité centrale (c'est-à-dire en évitant la surcharge du noyau). du noyau). En termes de performances, tout dépend de votre application. Si vous est liée au processeur, l'impact peut être minime (ce qui peut être surprenant). Si vous êtes limité par la bande passante de la mémoire de l'hôte local, il vous donnera une plus grande mémoire, mais vous serez étranglé par le goulot d'étranglement déjà existant. Dans ce Dans ce cas, est-il avantageux pour la charge de travail d'avoir une mémoire plus grande que celle qui peut être mise dans une boîte ? dans une boîte et de ne pas manquer de mémoire vive ? Nous avons obtenu de (très) bons résultats avec virtualisation et les bibliothèques d'apprentissage automatique Python. Les applications HPC haut de gamme ont tendance à être moins performantes, mais nous avons utilisé les API C et avons réussi à performances acceptables tout en réduisant le nombre de nœuds (les nœuds étaient là pour la RAM, pas pour les cycles du CPU), ce qui est un avantage par rapport à MPI. Il est difficile de dire s'il s'agit d'une bonne solution pour votre collègue, mais c'est une option que vous pouvez envisager. J'espère que cela vous aidera. Pour être clair, je Je ne travaille pas pour Kove et je n'ai aucun intérêt financier, mais j'ai collaboré avec eux depuis plusieurs années et je pense que cette technologie a le potentiel de d'avoir un impact substantiel sur la façon dont certains calculs sont effectués.

2voto

Matija Nalis Points 2476

Autre point de vue : le problème n'est peut-être pas la limitation des ressources du système, mais l'application inutile qu'écrit votre ami. 6 Go de RAM, c'est beaucoup de mémoire.

Ce n'est pas parce que beaucoup d'autres applis sont trop gonflé La candidature d'un ami ne doit pas nécessairement être l'une d'entre elles. L'utilisation de différentes méthodes de programmation peut réduire les besoins en mémoire tout en améliorant la vitesse. Par exemple, si l'application charge l'ensemble des données en mémoire et travaille ensuite dessus, elle gaspillera beaucoup plus d'énergie que si elle stocke les données dans une base de données SQL (locale ou distante) avec quelques index de sélection et qu'elle y accède. Faites en sorte qu'il traite les données bloc par bloc si possible, au lieu de les charger en une seule fois. Les structures en mémoire peuvent également être source de gaspillage. Libérez de la mémoire lorsque vous n'en avez plus besoin. Ne chargez pas en mémoire vive ce que vous pouvez mettre en mémoire à la place. Et des centaines d'autres conseils...

Cependant, si l'application a vraiment besoin de plus de mémoire qui doit être stockée sur d'autres ordinateurs, elle peut être modifiée pour utiliser memcached et d'autres pour le ranger. En prime, il sera plus facile de l'adapter à l'avenir.

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