Partage des ressources matérielles via le réseau: spécifiquement la RAM


8

J'ai deux systèmes. L'un est un ordinateur portable et possède 2 Go de RAM tandis que l'autre est un ordinateur de bureau ayant 8 Go de RAM. Est-il possible de partager ces ressources afin que les deux systèmes disposent de 10 Go de RAM?

Le logiciel que je veux exécuter sur les deux systèmes est Android Studio ... que l'ordinateur portable ne gère pas très bien actuellement.

Informations supplémentaires: Les deux systèmes exécutent Windows 8 et disposent de processeurs Intel Core i3 .

merci ppl, mais j'ai une autre question .. que diriez-vous de le partager via un câble Ethernet ?? comme via un commutateur ou un V-LAN, n'utilisant pas du tout Internet et obtenant un taux de transfert de descente ???


2
Non, le bélier n'est pas transférable.
Ctrl-alt-dlt

15
Bien sûr, vous pourriez faire ça. Mais la RAM partagée ne serait aussi rapide que la vitesse de votre réseau. En d'autres termes, cela est possible (enfin, théoriquement de toute façon), mais pas pratique.
Ajedi32

4
Il n'est pas raisonnable de vous demander de changer de système d'exploitation, mais sachez que Linux a une compression de mémoire virtuelle, ce qui signifie que vous pouvez utiliser plus de RAM que vous n'en avez physiquement en en compressant certains segments avec LZO.
Naftuli Kay

5
Si vous utilisez Linux, vous pouvez configurer quelque chose en utilisant un disque virtuel, un périphérique de blocage de réseau et un fichier d'échange. Je ne pense pas que Windows ait ce genre de capacité.
Mark

4
Vous posez la mauvaise question. La question que vous devez vous poser est la suivante: comment tirer parti de la machine la plus puissante pour effectuer des builds? Et une réponse possible est le plugin Gradle SSH .
Michael Hampton

Réponses:


21

Seuls certains programmes permettent de fractionner les processus sur le réseau (certains programmes de rendu 3D, partageant efficacement la RAM) (Voir réponse de Julian Knight)

Le problème avec Internet serait que c'est trop lent (voir la réponse de Spiff)

Je pense que la RAM de votre bureau ne sera pas compatible avec le matériel, donc le simple fait de placer les bandes de RAM dans votre ordinateur portable ne fonctionnera pas.

Ce que tu peux faire:

Installez un client de bureau à distance sur votre ordinateur portable et connectez-vous à votre bureau. De cette façon, vous pouvez "travailler sur votre bureau" à travers le tunnel.

Ainsi, le programme lourd (studio Android) fonctionnera sur votre bureau! Et l'ordinateur portable ne serait gêné que par le client de bureau à distance.

Cela utilise efficacement le matériel PC et fonctionnerait donc mieux (si votre ordinateur portable et votre client de bureau à distance sont suffisants et assez faciles à utiliser).

Je voudrais ajouter que cela ne "partage" pas la RAM, mais utilise simplement la RAM du PC, ce qui est suffisant.


1
Je pense qu'il existe des programmes qui vous permettent de faire glisser une fenêtre d'un système d'exploitation à un autre, mais je ne suis pas sûr du nom, si le traitement se fait toujours localement ou quoi que ce soit d'autre.
Ismael Miguel

1
Parallels, mais c'est la virtualisation.
Arthur Kay

1
@Alvin Une application de bureau à distance ne passerait pas par Internet à moins que vous n'ayez spécifiquement configuré votre réseau pour cela. Si vous vous connectez à votre bureau en utilisant son IP sur le réseau, la connexion n'existera que sur votre réseau.
Logarr

9

Probablement pas, car cela serait assez lent par rapport à la pagination de la mémoire virtuelle sur un lecteur local. SATA-3 est de 6 gigabits par seconde, et j'ai un disque dur SATA-3 de 4 To à 7200 tr / min avec un taux de lecture / écriture soutenu de 157 MebiByte / sec (~ 1,3 gigabit / sec). Les taux de transfert soutenus sur Gigabit Ethernet sont au mieux d'environ 0,942 gigabits / sec.


4
Notez que pour certaines charges de travail, la latence d'accès aléatoire est plus importante que la bande passante (et je soupçonne que votre chiffre de bande passante de disque était pour les grands accès et non les blocs 4KoB aléatoires). Même avec des frais généraux de mise en réseau, le transfert de 4 Ko directement d'un système à un autre serait probablement plus rapide que l' accès au disque moyen (avec des délais de recherche, de stabilisation et de rotation). Avant que les SSD ne deviennent populaires, il y avait des recherches sur l'utilisation de la RAM d'autres systèmes pour l'espace d'échange. La réponse de FuaZe consistant à déplacer le travail vers un système plus large semble plus pratique.
Paul A. Clayton

3
Oui, mais votre disque a une vitesse d'accès aléatoire BEAUCOUP, BEAUCOUP inférieure à celle du Gigabit Ethernet. Pour cela, vous auriez besoin d'un état solide.
Arthur Kay

@Spiff merci ppl, mais j'ai une autre question .. que diriez-vous de le partager via un câble Ethernet ?? comme via un commutateur ou un V-LAN, n'utilisant pas du tout Internet et obtenant un taux de transfert de descente ???
Alvin

@ArthurKay: Ou un lecteur professionnel de 30 Krpm qui est utilisé dans les clusters de virtualisation d'équilibrage de charge.
user2284570

@Alvin C'est exactement ce dont parle cette réponse. "... taux de transfert sur Gigabit Ethernet ..."
BenjiWiebe

1

Non, ce n'est pas possible.

La seule légère exception est lorsque vous utilisez un outil capable de fractionner le traitement sur plusieurs machines, comme le rendu graphique 3D. Cependant, ce n'est pas vraiment ce que vous demandez.


Connaissez-vous l' enfer ? Puisqu'il utilise x86, l'accès DMA en réseau peut être une véritable aide.
user2284570

L'OP a spécifié Windows 8 afin que cela ne l'aide pas, je le crains.
Julian Knight

C'était juste pour dire que contrairement à ce que vous avez dit, c'est possible. Pour le système d'exploitation, le système apparaît comme un système SMP à mémoire non partagée.
user2284570

1

Il y a environ sept ans, le contrôleur de mémoire a été déplacé d'une puce distincte ( northbridge ou concentrateur de contrôleur de mémoire) vers le processeur. Est-ce que tu sais pourquoi? Pour diminuer la latence, car le CPU a besoin d'un accès très, très haut débit à la RAM. Les processeurs actuels accèdent à la RAM avec 68 Go / s : http://ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz . L'Ethernet moderne à 1 Gbit / s vous offre environ 120 Mo par seconde, soit 560 fois plus lentement. Ce n'est donc pas quelque chose que vous pouvez faire sur des PC ordinaires.

Il existe des solutions basées sur un cluster informatique avec de nombreux ordinateurs connectés à un réseau et chacun stocke une partie des données dans sa RAM. Il est beaucoup plus lent que la RAM ordinaire, mais vous n'avez pas le choix si vous avez besoin de 10 To de données pour être disponible. Mais ces solutions doivent être prises en charge par un logiciel. Et Android Studio ne le prend pas en charge.

Donc, la réponse est non, malheureusement.


1
Pour utiliser des clusters résistants aux pannes de virtualisation, je peux dire que le partage de RAM sur Ethernet cat5E avec des disques encore plus lents fonctionne correctement avec les systèmes d'exploitation et les programmes modernes.
user2284570

1

Ce n'est pas possible actuellement, mais cela était en fait répertorié sur les cartes sous une forme et crayonné pour « After Vista » dans le cadre du système «ReadyBoost» qui vous permet d'utiliser une clé USB comme support pour lire le fichier d'échange (et d'autres fichiers) plus rapidement que l'utilisation du disque. Ce n'est pas de la RAM supplémentaire en tant que telle, mais si vous utilisez beaucoup de RAM, cela peut réduire le temps que votre ordinateur passe à paginer vers et depuis le disque.

Il semble que dans votre scénario, vous bénéficieriez d'une clé USB de 32 Go dédiée à ReadyBoost .


Cela ne semble pas répondre à la question du PO. Bien qu'il ait été prévu à l'origine que ReadyBoost autorise le partage de RAM sur le réseau, ce n'est pas comme cela qu'il est actuellement implémenté.
ChrisInEdmonton

@ChrisInEdmonton OK, j'ai édité ma réponse pour dire spécifiquement que ce n'est pas possible mais a été planifié à un moment donné plutôt que de simplement le dire.
Matthew Steeples

2
Et ReadyBoost est trop lent pour être utile. Les ordinateurs ralentissent réellement lors de l'utilisation de ReadyBOOST. Pas beaucoup de boost du tout.
Tonny

1
@Tonny Pensez que c'est l'un de ces scénarios "votre kilométrage peut varier". J'ai personnellement constaté qu'il accélérait les ordinateurs plus lents et faisait peu de différence avec les ordinateurs rapides. Je ne l'ai jamais vu ralentir un ordinateur. De toute évidence, il n'y a pas de substitut à une tonne de disques RAM et SSD, mais si vous ne pouvez pas / ne voulez pas y aller et que les bus USB peu fréquentés sont disponibles, cela pourrait aider
Matthew Steeples

0

Ce n'est pas possible, du moins pas sans un énorme effort de la part de Google.

Fondamentalement, Android Studio devrait prendre en charge le traitement distribué multi-nœuds un peu comme le minage BitCoin et Folding @ Home.

En appuyant sur compiler sur votre ordinateur portable, il enverra un morceau de code à votre bureau pour traitement. Une fois le traitement du bureau terminé, il le renverra à votre ordinateur portable afin qu'il puisse patcher ensemble.


Je doute que la compilation soit ce qui brûle la mémoire dans Android Studio.
Atsby

-1

J'ai un bureau; une salle avec un assistant personnel et une armoire contenant 5000 livres et un bureau avec un espace pour 20 livres. Imaginez cette configuration comme

  • Bureau = ordinateur
  • Me = processeur (CPU)
  • Assistant = système d'exploitation (OS)
  • Bureau = RAM
  • Cabinet = disque dur

À tout moment, 20 livres au maximum peuvent être sortis du cabinet par mon assistant et placés sur mon bureau pour le travail. En raison du travail de ma secrétaire, il peut placer un ou deux livres sur mon bureau (disons simplement que nous sommes pauvres et que nous ne pouvons pas nous permettre un autre bureau).

Si je veux travailler sur d'autres livres, il n'y a plus d'espace, et mon assistant doit déterminer quel (s) livre (s) en cours sur le bureau je suis le moins susceptible d'utiliser en ce moment, et réinsérera ce livre dans l'armoire pour faites place aux autres livres que je veux. L'assistant doit aller et venir du bureau et du cabinet chaque fois que je souhaite travailler sur un livre qui n'est pas à ma portée.

Pour un système avec une RAM insuffisante, c'est ce que le système d'exploitation fait pour les processus qui ne semblent pas être très actifs - prenez leur contenu en mémoire et écrivez-les sur le disque dans un magasin de mémoire virtuelle, libérant de la RAM pour les autres processus qui en ont besoin. Tout comme il y a une distance entre le bureau et l'armoire, il y a une "distance" entre le processeur, la RAM et le disque. Le disque est incroyablement loin et lent, tout comme vous le faites avec votre ordinateur portable.

Dans le bureau voisin, mon collègue a un bureau assez spacieux pour 80 livres. Ne serait-il pas agréable de pouvoir "partager" une partie de son bureau pour ranger mes livres? Pour que je puisse avoir pratiquement 100 livres?

Eh bien, tout d'abord, les assistants de chaque bureau doivent inévitablement placer certains de leurs propres livres pour pouvoir effectuer leur propre travail (non négociable). Tous les OS d'un système doivent utiliser de la RAM pour faire leur travail, sinon vous n'auriez pas d'OS pour commencer. Je n'ai donc pas vraiment l'allocation complète de 20 livres, ni mon collègue avec une allocation complète de 80 livres. Et mon collègue a son propre travail à faire qui épuise encore l'espace disponible.

De plus, les assistants ne sont pas formés pour déplacer des livres entre les bureaux (supposons que leurs niveaux de compétence ont une limite). L'architecture Windows existante ne prévoit pas d'utiliser directement la RAM d'un autre ordinateur distant.

Maintenant, imaginez que si les assistants étaient bien formés pour déplacer correctement les livres entre les bureaux et se souviennent clairement de la propriété des livres, la marche entre les bureaux sera très probablement une procédure encore plus lente car la marche d'un bureau à l'autre est plus longue. Non seulement cela, lorsque l'assistant récupère les livres de l'autre bureau, il devrait encore libérer de l'espace sur votre propre bureau, en remettant les livres indésirables dans l'armoire. Pourquoi le faire marcher autant?

Il n'est pas possible de quitter un ordinateur pour stocker / récupérer des éléments dans un autre ordinateur via le réseau, au moins pour votre cas d'utilisation, car l'application ni le système d'exploitation ne savent pas comment y parvenir. Et ce ne serait pas très efficace non plus.

Si vous souhaitez continuer à travailler avec l'ordinateur portable, installez plus de RAM (un plus grand bureau) ou installez un disque SSD (armoire avec des fonctions d'organisation qui accélèrent la localisation des livres).

Notez que dans certaines configurations, il peut en fait être plus rapide de stocker et de récupérer des données à partir d'ordinateurs distants - il existe des technologies logicielles de cluster qui font exactement cela - puis d'accéder à des disques à rotation lente, mais ceux-ci ne répondent toujours pas à votre scénario.

Tenez compte des échelles de temps d'accès aux données entre les ressources matérielles .


7
Je pense que vous interprétez la question trop littéralement. De toute évidence, il est impossible pour les ordinateurs d'avoir 10 Go chacun, mais il est, en principe, possible que les ordinateurs partagent 10 Go afin qu'ils puissent, par exemple, utiliser 5 Go chacun au lieu que l'ordinateur portable soit limité à 2 Go. Les performances seraient terribles mais c'est possible en principe.
David Richerby

@DavidRicherby - Les questions doivent être lues littéralement. Le mot écrit est une chose merveilleuse, la seule chose que cela signifie, c'est exactement ce que vous dites. L'auteur demande donc littéralement s'ils peuvent combiner la mémoire système de deux ordinateurs indépendants pour augmenter les performances, ce qui bien sûr n'est pas possible.
Ramhound

6
@Ramhound Vous semblez avoir mal compris cette réponse. Cette réponse dit qu'il est impossible de combiner un système de 2 Go et un système de 8 Go pour obtenir deux systèmes de 10 Go chacun (car ce serait un total de 20 Go, ce qui n'existe pas). Interprété trop littéralement, c'est ce que la question pose. Vous parlez de combiner 2 Go + 8 Go pour que deux systèmes partagent 10 Go, ce que la question est censée poser. Vous vous êtes donc plutôt tiré une balle dans le pied en affirmant que les questions doivent être lues littéralement: la question littérale est un non-sens; la question envisagée a au moins un sens.
David Richerby

@DavidRicherby - Si vous le dites. J'ai trouvé la réponse utile. Puisqu'il a correctement indiqué que vous ne pouvez pas combiner la mémoire système de deux systèmes informatiques indépendants, tout comme vous ne pouvez pas combiner deux réservoirs d'essence de deux voitures séparées et indépendantes. Bien sûr, je ne suis pas sûr qu'il en trouve 220, ce qui n'a pas de sens.
Ramhound

Cette question et réponse est un parfait exemple de GIGO :)
Ratna
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.