Gemeinsame Nutzung von Hardwareressourcen über das Netzwerk: speziell RAM

8

Ich habe zwei Systeme. Einer ist ein Laptop und hat 2 GB RAM, während der andere ein Desktop mit 8 GB RAM ist. Ist es möglich, diese Ressourcen gemeinsam zu nutzen, sodass beide Systeme über 10 GB RAM verfügen?

Die Software, die ich auf beiden Systemen ausführen möchte, ist Android Studio ... was der Laptop derzeit nicht ganz gut handhabt.

Zusätzliche Informationen: Auf beiden Systemen wird Windows 8 ausgeführt und es gibt Intel Core i3- Prozessoren.

danke ppl, aber ich habe noch eine frage .. wie wäre es mit dem teilen über ein ethernet kabel ?? wie in über einen Switch oder V-LAN, dabei überhaupt nicht das Internet nutzen und trotzdem eine Abstiegsübertragungsrate bekommen ???

Alvin
quelle
2
Nein, RAM ist nicht übertragbar.
Strg-Alt-Dlt
15
Sicher könnten Sie das tun. Der gemeinsam genutzte RAM ist jedoch nur so schnell wie Ihre Netzwerkgeschwindigkeit. Mit anderen Worten, dies ist möglich (theoretisch sowieso), aber nicht praktisch.
Ajedi32
4
Es ist nicht sinnvoll, Sie zum Wechseln des Betriebssystems aufzufordern, aber Sie wissen, dass Linux über eine Komprimierung des virtuellen Speichers verfügt, was bedeutet, dass Sie mehr RAM verwenden können, als Sie physisch haben, indem Sie bestimmte Segmente mit LZO komprimieren.
Naftuli Kay
5
Wenn Sie Linux verwenden, können Sie mithilfe einer Ramdisk, eines Netzwerkblockgeräts und einer Auslagerungsdatei etwas einrichten. Ich glaube nicht, dass Windows diese Art von Fähigkeit hat.
Mark
4
Sie stellen die falsche Frage. Die Frage, die Sie sich stellen sollten , ist, wie Sie die leistungsstärkere Maschine für die Ausführung von Builds nutzen können. Eine mögliche Antwort ist das Gradle SSH-Plugin .
Michael Hampton

Antworten:

21

Nur einige Programme erlauben die Aufteilung von Prozessen über das Netzwerk (einige 3D-Rendering-Programme, die RAM effektiv gemeinsam nutzen) (siehe Antwort von Julian Knight).

Das Problem mit dem Internet wäre, dass es zu langsam ist (siehe Antwort von Spiff)

Ich denke, der RAM Ihres Desktops ist nicht hardwarekompatibel, daher funktioniert es nicht, nur die RAM-Streifen in Ihren Laptop zu legen.

Was du tun kannst:

Installieren Sie einen Remotedesktop-Client auf Ihrem Laptop und stellen Sie eine Verbindung zu Ihrem Desktop her. Auf diese Weise können Sie durch den Tunnel "auf Ihrem Desktop arbeiten".

So läuft das schwere Programm (Android Studio) auf Ihrem Desktop! Und der Laptop würde nur vom Remotedesktop-Client gestört.

Dies nutzt effektiv die PC-Hardware und würde daher besser funktionieren (wenn Ihr Laptop und Ihr Remotedesktop-Client ausreichend und einfach genug sind, um damit zu arbeiten.

Ich möchte hinzufügen, dass dies nicht den RAM "teilt", sondern nur den RAM des PCs verwendet, was ausreicht.

Paul
quelle
1
Ich denke, dass es Programme gibt, mit denen Sie ein Fenster von einem Betriebssystem auf ein anderes ziehen können, aber ich bin mir nicht sicher, ob der Name noch lokal oder sonst noch ausgeführt wird.
Ismael Miguel
1
Parallelen, aber das ist Virtualisierung.
Arthur Kay
1
@Alvin Eine Remotedesktopanwendung würde nur dann über das Internet gehen, wenn Sie Ihr Netzwerk speziell dafür eingerichtet haben. Wenn Sie über die IP-Adresse im Netzwerk eine Verbindung zu Ihrem Desktop herstellen, besteht die Verbindung nur in Ihrem Netzwerk.
Logarr
9

Wahrscheinlich nicht, da es im Vergleich zum Paging des virtuellen Speichers auf einem lokalen Laufwerk ziemlich langsam wäre. SATA-3 ist 6 Gigabit pro Sekunde und ich habe eine zwei Jahre alte SATA-3-Festplatte mit 4 TB und 7200 U / min und einer anhaltenden Lese- / Schreibrate von 157 MebiByte / s (~ 1,3 Gigabit / s). Die anhaltenden Übertragungsraten über Gigabit-Ethernet liegen bestenfalls bei 0,942 Gigabit / s.

Spiff
quelle
4
Beachten Sie, dass für einige Workloads die Latenz für den wahlfreien Zugriff wichtiger ist als die Bandbreite (und ich vermute, dass Ihre Festplattenbandbreitenzahl für große Zugriffe und nicht für zufällige 4-KB-Blöcke gilt). Selbst bei Netzwerk-Overheads wäre die Übertragung von 4 KB direkt von einem System auf ein anderes wahrscheinlich schneller als der durchschnittliche Festplattenzugriff (mit Such-, Abwicklungs- und Rotationsverzögerungen). Bevor SSDs populär wurden, wurde untersucht, wie der RAM anderer Systeme für den Swap Space verwendet werden kann. Die Antwort von FuaZe, die Arbeit auf das größere System zu verlagern , erscheint praktischer.
Paul A. Clayton
3
Richtig, aber Ihr Laufwerk hat eine VIEL, VIEL niedrigere Direktzugriffsgeschwindigkeit als Gigabit-Ethernet. Dafür benötigen Sie einen Festkörper.
Arthur Kay
@Spiff danke ppl, aber ich habe eine andere Frage .. wie wäre es, es über ein Ethernet-Kabel zu teilen? wie in über einen Switch oder V-LAN, dabei überhaupt nicht das Internet nutzen und trotzdem eine Abstiegsübertragungsrate bekommen ???
Alvin
@ArthurKay: Oder ein 30-U / min-Laufwerk der professionellen Klasse, das in Virtualisierungsclustern mit Lastenausgleich verwendet wird.
user2284570
@Alvin Genau darum geht es in dieser Antwort. "... Übertragungsraten über Gigabit-Ethernet ..."
BenjiWiebe
1

Nein das ist nicht möglich.

Die einzige kleine Ausnahme besteht darin, dass Sie ein Tool verwenden, mit dem die Verarbeitung auf mehrere Computer aufgeteilt werden kann, z. B. das Rendern von 3D-Grafiken. Dies ist jedoch nicht wirklich das, was Sie fragen.

Julian Knight
quelle
Kennst du Inferno ? Da er x86 verwendet, kann ein vernetzter DMA-Zugriff eine echte Hilfe sein.
user2284570
Das OP hat Windows 8 spezifiziert, was ihm leider nicht hilft.
Julian Knight
Dies war nur, um zu sagen, dass es entgegen Ihrer Aussage möglich ist. Für das Betriebssystem wird das System als nicht gemeinsam genutztes Speicher-SMP-System angezeigt.
user2284570
1

Vor ungefähr sieben Jahren wurde der Speichercontroller von einem separaten Chip ( Northbridge oder Speichercontroller-Hub) auf die CPU verschoben . Wissen Sie, warum? Um die Latenz zu verringern, benötigt die CPU einen sehr, sehr schnellen Zugriff auf den RAM. Aktuelle CPUs greifen mit 68 GB / s auf RAM zu : http://ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz . Modernes 1-Gbit / s-Ethernet bietet ungefähr 120 MB pro Sekunde und ist damit 560- mal langsamer. Auf normalen PCs ist dies also nicht möglich.

Es gibt Cluster-Computing-basierte Lösungen, bei denen viele Computer an ein Netzwerk angeschlossen sind und jeder einen Teil der Daten in seinem RAM speichert. Es ist viel langsamer als normales RAM, aber Sie haben keine Wahl, wenn Sie 10 TB Daten benötigen, um verfügbar zu sein. Solche Lösungen sollten jedoch von Software unterstützt werden. Und Android Studio unterstützt es nicht.

Die Antwort lautet also leider nein.

user996142
quelle
1
Für die Verwendung von ausfallsicheren Virtualisierungsclustern kann ich sagen, dass die gemeinsame Nutzung von RAM über Cat5E-Ethernet für noch langsamere Laufwerke mit modernen Betriebssystemen und Programmen problemlos funktioniert.
user2284570
1

Es ist derzeit nicht möglich, aber dies wurde tatsächlich in irgendeiner Form auf den Karten aufgeführt und für " After Vista " als Teil des "ReadyBoost" -Systems eingezeichnet, mit dem Sie einen USB-Stick als Medium zum Lesen der Auslagerungsdatei (und) verwenden können andere Dateien) schneller als mit der Festplatte. Es ist kein zusätzlicher Arbeitsspeicher als solcher, aber wenn Sie viel Arbeitsspeicher verwenden, kann dies die Zeit reduzieren, die Ihr Computer für das Paging von Daten auf und von der Festplatte benötigt.

In Ihrem Szenario würden Sie von einem 32-GB-USB-Stick für ReadyBoost profitieren .

Matthew Steeples
quelle
Dies scheint die Frage des OP nicht zu beantworten. Während es ursprünglich geplant war, dass ReadyBoost die gemeinsame Nutzung von RAM im Netzwerk ermöglicht, ist dies derzeit nicht der Fall.
ChrisInEdmonton
@ChrisInEdmonton OK, ich habe meine Antwort so bearbeitet, dass ausdrücklich angegeben wird, dass dies nicht möglich ist, aber zu einem bestimmten Zeitpunkt geplant wurde, anstatt nur anzugeben, dass es geplant war.
Matthew Steeples
2
Und ReadyBoost ist zu langsam, um nützlich zu sein. Computer werden bei Verwendung von ReadyBOOST tatsächlich langsamer. Überhaupt kein großer Schub.
Tonny
1
@Tonny Denke, es ist eines dieser Szenarien, in denen "dein Kilometerstand variieren kann". Ich persönlich habe festgestellt, dass es langsamere Computer beschleunigt und bei schnellen Computern kaum einen Unterschied macht. Ich habe noch nie erlebt, dass ein Computer langsamer wird. Natürlich gibt es keinen Ersatz für eine Tonne RAM- und SSD-Festplatten, aber wenn Sie das nicht können / wollen und nicht überfüllte USB-Busse übrig haben, könnte es helfen
Matthew Steeples
0

Dies ist nicht möglich, zumindest nicht ohne großen Aufwand von Google.

Grundsätzlich müsste Android Studio die verteilte Verarbeitung mit mehreren Knoten unterstützen, ähnlich wie BitCoin Mining und Folding @ Home.

Wenn Sie auf Ihrem Laptop auf Kompilieren klicken, wird ein Teil des Codes zur Verarbeitung an Ihren Desktop gesendet. Sobald die Verarbeitung des Desktops abgeschlossen ist, wird er an Ihren Laptop zurückgesendet, damit er die Dinge zusammenfügen kann.

MonkeyZeus
quelle
Ich bezweifle, dass Kompilierung das ist, was Speicher in Android Studio verbrennt.
Atsby
-1

Ich habe ein Büro; Ein Raum mit einem persönlichen Assistenten und einem Schrank für 5000 Bücher sowie ein Schreibtisch mit Platz für 20 Bücher. Stellen Sie sich diese Konfiguration als vor

  • Büro = Computer
  • Me = Prozessor (CPU)
  • Assistent = Betriebssystem (OS)
  • Schreibtisch = RAM
  • Gehäuse = Festplatte

Zu jeder Zeit können höchstens 20 Bücher von meinem Assistenten aus dem Schrank genommen und zur Arbeit auf meinen Schreibtisch gelegt werden. Aufgrund der Arbeit meiner Sekretärin kann er ein oder zwei eigene Bücher auf meinen Schreibtisch legen (sagen wir einfach, wir sind arm und können uns keinen anderen Schreibtisch leisten).

Wenn ich an anderen Büchern arbeiten möchte, ist kein Platz mehr vorhanden, und mein Assistent muss bestimmen, welche aktuellen Bücher auf dem Schreibtisch ich momentan am seltensten benutze, und wird dieses Buch wieder in den Schrank stecken Platz machen für die anderen Bücher, die ich will. Der Assistent muss jedes Mal, wenn ich an einem Buch arbeiten möchte, das nicht in meiner Reichweite ist, zum Schreibtisch und zum Schrank gehen.

Bei einem System mit unzureichendem RAM ist dies das, was das Betriebssystem für Prozesse tut, die nicht sehr aktiv zu sein scheinen. Nehmen Sie den Speicherinhalt und schreiben Sie ihn in einen virtuellen Speicher auf die Festplatte, um RAM für andere Prozesse freizugeben, die ihn benötigen. So wie es einen Abstand zwischen Schreibtisch und Schrank gibt, gibt es einen "Abstand" zwischen Prozessor, RAM und Festplatte. Die Festplatte ist unglaublich weit und langsam, genau wie Sie es mit Ihrem Laptop erleben.

Im nächsten Büro hat mein Kollege einen Schreibtisch, der Platz für 80 Bücher bietet. Wäre es nicht schön, wenn er einen Teil seines Schreibtisches "teilen" könnte, um meine Bücher aufzubewahren? Damit ich praktisch 100 Bücher haben könnte?

Zunächst einmal müssen die Assistenten in jedem Büro zwangsläufig einige ihrer eigenen Bücher platzieren, damit sie ihre eigene Arbeit verrichten können (nicht verhandelbar). Alle Betriebssysteme in einem System müssen RAM verwenden, um ihre Arbeit zu erledigen, sonst hätten Sie zunächst kein Betriebssystem. Ich bekomme also nicht wirklich die volle Zuweisung von 20 Büchern, noch mein Kollege mit der vollen Zuweisung von 80 Büchern. Und mein Kollege hat seine eigene Arbeit zu erledigen, die den verfügbaren Platz weiter erschöpft.

Darüber hinaus sind die Assistenten nicht darin geschult, Bücher zwischen Büros zu verschieben (vorausgesetzt, ihre Kompetenzstufen sind begrenzt). In der vorhandenen Windows-Architektur ist nicht vorgesehen, den RAM eines anderen Remotecomputers direkt zu verwenden.

Stellen Sie sich nun vor, wenn die Assistenten tatsächlich darin geschult wurden, Bücher ordnungsgemäß zwischen Büros zu bewegen und sich klar an den Besitz von Büchern zu erinnern, wird das Gehen zwischen Büros sehr wahrscheinlich noch langsamer, da das Gehen von einem Büro zum anderen eine größere Entfernung darstellt. Nicht nur das, wenn der Assistent die Bücher aus dem anderen Büro holt, müsste er immer noch Platz auf Ihrem eigenen Schreibtisch schaffen, indem er unerwünschte Bücher zurück in den Schrank mischt. Warum ihn so viel laufen lassen?

Das Beenden eines Computers zum Speichern / Abrufen von Daten auf einem anderen Computer über das Netzwerk, zumindest für Ihren Anwendungsfall, ist nicht möglich, da die App oder das Betriebssystem nicht wissen, wie dies erreicht werden soll. Und es wäre auch nicht sehr effizient.

Wenn Sie weiterhin mit dem Laptop arbeiten möchten, installieren Sie mehr RAM (größerer Schreibtisch) oder eine Solid-State-Festplatte (Schrank mit Organisationsfunktionen, die das Auffinden von Büchern beschleunigen).

Beachten Sie, dass es in einigen Konfigurationen tatsächlich schneller sein kann, Daten von Remotecomputern zu speichern und abzurufen - es gibt Clustering-Softwaretechnologien, die genau das tun - und dann auf langsam drehende Festplatten zuzugreifen, die jedoch immer noch nicht Ihrem Szenario entsprechen.

Berücksichtigen Sie die Zeitskalen für den Datenzugriff zwischen Hardwareressourcen .

Icelava
quelle
7
Ich denke, Sie interpretieren die Frage zu wörtlich. Natürlich ist es für die Computer unmöglich, jeweils 10 GB zu haben, aber es ist im Prinzip möglich, dass die Computer 10 GB gemeinsam nutzen, so dass sie beispielsweise jeweils 5 GB verwenden können, anstatt dass der Laptop auf 2 GB beschränkt ist. Leistung wäre schrecklich, aber es ist im Prinzip möglich.
David Richerby
@ DavidRicherby - Fragen sollten wörtlich gelesen werden. Das geschriebene Wort ist eine wunderbare Sache, das einzige, was es bedeutet, ist genau das, was Sie sagen. Der Autor fragt also buchstäblich, ob er den Systemspeicher zweier unabhängiger Computer kombinieren kann, um die Leistung zu steigern, was natürlich nicht möglich ist.
Ramhound
6
@ Ramhound Sie scheinen diese Antwort falsch verstanden zu haben. Diese Antwort besagt, dass es unmöglich ist, ein 2-GB-System und ein 8-GB-System zu kombinieren, um zwei Systeme mit jeweils 10 GB zu erhalten (da dies insgesamt 20 GB wären, was nicht existiert). Zu wörtlich interpretiert, das ist es, was die Frage stellt. Sie sprechen über die Kombination von 2 GB + 8 GB, um zwei Systeme zu erhalten, die 10 GB gemeinsam nutzen. Darum soll die Frage gestellt werden. Sie haben sich also lieber mit der Behauptung in den Fuß geschossen, dass Fragen wörtlich gelesen werden sollten: Die wörtliche Frage ist Unsinn; Die beabsichtigte Frage macht zumindest Sinn.
David Richerby
@ DavidRicherby - Wenn du es sagst. Ich fand die Antwort hilfreich. Da es richtig darauf hingewiesen wurde, können Sie den Systemspeicher nicht von zwei unabhängigen Computersystemen kombinieren, so wie Sie nicht zwei Gastanks von zwei getrennten und unabhängigen Automobilen kombinieren können. Natürlich bin ich mir nicht sicher, ob er 220 hat, das macht in der Tat keinen Sinn.
Ramhound
Diese Frage und Antwort ist perfektes Beispiel für GIGO :)
Ratna