ネットワークを介したハードウェアリソースの共有:特にRAM


8

2つのシステムがあります。1つはラップトップで2 GBのRAMを備え、もう1つは8 GBのRAMを備えたデスクトップです。これらのリソースを共有して、両方のシステムに10 GBのRAMを搭載することはできますか?

私が両方のシステムで実行したいソフトウェアはAndroid Studioです...現在、このラップトップはうまく処理できません。

追加情報:どちらのシステムもWindows 8を実行しており、Intel Core i3プロセッサーを搭載しています。

pplに感謝しますが、別の質問がありました。イーサネットケーブルで共有してみませんか?スイッチまたはv-lanを経由する場合と同様に、therbyはインターネットをまったく使用せず、下降転送速度を取得しますか?


2
いいえ、ラムは譲渡できません。
Ctrl-alt-dlt

15
確かにそれは可能です。ただし、共有RAMの速度はネットワーク速度と同じです。つまり、これは可能ですが(理論的にはとにかく)現実的ではありません。
Ajedi32

4
オペレーティングシステムの切り替えを依頼するのは合理的ではありませんが、Linuxには仮想メモリ圧縮があることを知っています。つまり、LZOで特定のセグメントを圧縮することにより、物理的により多くのRAMを使用できます。
Naftuli Kay、2015

5
Linuxを使用している場合は、ramdisk、ネットワークブロックデバイス、およびスワップファイルを使用して何かをリギングできます。Windowsにこの種の機能があるとは思いません。
マーク・

4
あなたは間違った質問をしています。あなた尋ねるべき質問は、ビルドを実行するためにより強力なマシンをどのように活用するかです。そして、考えられる答えの1つは、Gradle SSHプラグインです。
マイケルハンプトン2015年

回答:


21

一部のプログラムのみがネットワークを介してプロセスを分割することができます(一部の3Dレンダリングプログラム、RAMを効果的に共有します)(Julian Knightの回答を参照)

インターネットの問題は遅すぎるでしょう(Spiffの回答を参照)

デスクトップのRAMはハードウェア互換ではないので、RAMストリップをラップトップに配置するだけでは機能しません。

あなたができること:

ラップトップにリモートデスクトップクライアントをインストールし、デスクトップに接続します。これにより、トンネルを介して「デスクトップで作業」できます。

重いプログラム(android studio)がデスクトップで実行されます!そして、ラップトップはリモートデスクトップクライアントによってのみ悩まされるでしょう。

これは、PCハードウェアを効果的に使用するため、より適切に機能します(ラップトップおよびリモートデスクトップクライアントで十分に簡単に操作できる場合)。

これはRAMを「共有」するのではなく、PCのRAMを使用するだけで十分であることを付け加えておきます。


1
あるオペレーティングシステムから別のオペレーティングシステムにウィンドウをドラッグできるプログラムはあると思いますが、処理がローカルで行われているのか、それ以外の処理が行われているのかはわかりません。
Ismael Miguel

1
Parallelsですが、それは仮想化です。
Arthur Kay

1
@Alvinネットワークを特別に設定しない限り、リモートデスクトップアプリケーションはインターネットを経由しません。ネットワーク上のIPを使用してデスクトップに接続する場合、接続はネットワーク上にのみ存在します。
Logarr

9

ローカルドライブに仮想メモリのページングを実行するのに比べるとかなり遅いため、おそらくそうではありません。SATA-3は6ギガビット/秒で、157メガバイト/秒(約1.3ギガビット/秒)の持続的な読み取り/書き込み速度を持つ2年前の4TB 7200 RPM SATA-3 HDDを持っています。ギガビットイーサネットでの持続転送速度は、せいぜい0.942ギガビット/秒です。


4
一部のワークロードでは、ランダムアクセスレイテンシが帯域幅よりも重要であることに注意してください(ディスク帯域幅の数値は、ランダムな4KiBチャンクではなく、大規模なアクセス用であったと思われます)。ネットワーキングのオーバーヘッドがあっても、4KiBをあるシステムから別のシステムに直接転送すると、平均的なディスクアクセスよりも高速になります(シーク、セトリング、回転の遅延)。SSDが普及する前は、スワップスペースに他のシステムのRAMを使用する研究がありました。作業をより大きなシステムに移行するというFuaZeの答えは、より実用的なようです。
Paul A. Clayton

3
右ですが、ドライブのランダムアクセス速度はギガビットイーサネットよりもかなり低くなっています。そのためには、ソリッドステートが必要です。
Arthur Kay

@Spiffはpplに感謝しますが、別の質問を受けました。スイッチまたはv-lanを介してのように、サービはインターネットをまったく使用せず、下降転送速度を取得しますか?
アルビン、

@ArthurKay:または、負荷分散仮想化クラスターで使用されるプロフェッショナルクラスの30Krpmドライブ。
user2284570

@Alvinそれがまさにこの答えが話していることです。「...ギガビットイーサネットでの転送速度...」
BenjiWiebe

1

いいえ、できません。

わずかな例外は、3Dグラフィックスレンダリングなど、複数のマシン間で処理を分割できるツールを使用している場合です。しかし、これはあなたが本当に求めていることではありません。


インフェルノを知っていますか?彼はx86を使用しているので、ネットワーク化されたDMAアクセスが本当に役立ちます。
user2284570

OPはWindows 8を指定していたので、彼の助けにはなりません。
ジュリアンナイト

これは、あなたが言ったことに反して、それが可能であることを伝えるためだけのものでした。OSの場合、システムは非共有メモリSMPシステムとして表示されます。
user2284570

1

約7年前、メモリコントローラーは別のチップ(ノースブリッジまたはメモリコントローラーハブ)からCPU に移動されました。なぜなのかご存知ですか?CPUがRAMへの非常に高速なアクセスを必要とするため、レイテンシを減らすため。現在のCPUは68 GB /秒で RAMにアクセスします:http : //ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz。最新の1 Gbit / sイーサネットは、毎秒約120 MBを提供するため、560倍遅くなります。つまり、通常のPCでできることではありません。

多くのコンピューターがネットワークに接続されたクラスターコンピューティングベースのソリューションがあり、それぞれがデータの一部をRAMに格納します。通常のRAMよりもはるかに低速ですが、10 TBのデータを使用できるようにする必要があるかどうかは選択できません。ただし、このようなソリューションはソフトウェアでサポートする必要があります。また、Android Studioではサポートされていません。

ですから、残念ながら答えはノーです。


1
仮想化フォールトレジリエントクラスターを使用する場合、より遅いドライブでcat5Eイーサネットを介してRAMを共有すると、最新のOSとプログラムで問題なく機能します。
user2284570 2015年

1

現在は可能ではありませんが、実際にはカードに何らかの形式でリストされ、「ReadyBoost」システムの一部として「After Vista」用に鉛筆で描かれています。これにより、USBスティックをページファイルを読み取るための媒体として使用できます(および他のファイル)は、ディスクを使用するよりも高速です。それ自体は追加のRAMではありませんが、大量のRAMを使用している場合、コンピューターがディスクとの間でページングすることに費やす時間を削減できます。

あなたのシナリオでは、ReadyBoost専用の32 GB USBスティックを利用すると便利なようです。


これはOPの質問に答えるようには見えません。もともとReadyBoostがネットワーク全体でRAMを共有できるようにする計画だったかもしれませんが、現在の実装方法ではありません。
ChrisInEdmonton

@ChrisInEdmontonわかりました。具体的には不可能だと述べましたが、計画されたというだけでなく、ある時点で計画されたものであるように私の回答を編集しました。
マシュースティープルズ2015年

2
また、ReadyBoostは非常に遅いため、使い物になりません。コンピュータは、ReadyBOOSTを使用すると実際に遅くなります。ブーストはあまりありません。
Tonny、2015年

1
@Tonnyそれはそれらの「あなたのマイレージは変わるかもしれない」シナリオの一つだと思います。私は個人的に、それが遅いコンピューターをスピードアップし、速いコンピューターとほとんど違いがないことを発見しました。コンピュータが遅くなることは一度もありません。明らかに、大量のRAMとSSDディスクに代わるものはありませんが、それができない/できない場合や、混雑していないUSBバスがスペアになる場合、それ役立つ可能性があります
Matthew Steeples

0

これは不可能であり、少なくともGoogleの多大な努力がなければできません。

基本的に、Android Studioは、BitCoinマイニングやFolding @ Homeと同様に、マルチノード分散処理をサポートする必要があります。

ラップトップでコンパイルを押すと、コードのチャンクがデスクトップに送信されて処理されます。デスクトップの処理が完了すると、ラップトップに送り返され、パッチを適用できるようになります。


Android Studioでメモリを消費するのはコンパイルだとは思えません。
Atsby、2015年

-1

私にはオフィスがあります。パーソナルアシスタントと5000冊の本を保管するキャビネットと20冊分のスペースを備えたワークデスクのある部屋。この構成を次のように描きます

  • オフィス=コンピューター
  • Me =プロセッサー(CPU)
  • アシスタント=オペレーティングシステム(OS)
  • デスク= RAM
  • キャビネット=ハードディスク

いつでも、アシスタントが最大20冊の本をキャビネットから取り出して、机に置いて仕事をすることができます。私の秘書自身の仕事のために、彼は私の机の上に本を1冊または2冊置くことがあります(私たちが貧しくて、別の机を買う余裕がないとしましょう)。

他の本で作業したい場合は、スペースがありません。アシスタントは、現在使用している可能性が最も低い現在の机の本を決定する必要があり、その本をキャビネットに戻します。私が欲しい他の本に道を譲る。私が手の届かないところにある本で作業したいときはいつでも、アシスタントは机とキャビネットに行ったり来たりしなければなりません。

RAMが不十分なシステムの場合、これはOSがアクティブではないように見えるプロセスに対して行うことです。それらのメモリの内容を仮想メモリストアのディスクに書き込み、それを必要とする他のプロセスのためにRAMを解放します。デスクとキャビネットの間に距離があるように、プロセッサ、RAM、およびディスクの間に「距離」があります。あなたのラップトップで経験するように、ディスクは信じられないほど遠く、遅いです。

次のオフィスには、80冊の本を収納できる十分な広さのデスクがあります。彼が私の本を保管するために彼の机の一部を「共有」できたらいいのではないでしょうか。それで、私は事実上100冊の本を持つことができますか?

まず、各オフィスのアシスタントは、必然的に自分の本をいくつか置いて、自分の仕事を実行できるようにする必要があります(交渉不可)。システム内のすべてのOSは、RAMを使用して作業を行う必要があります。そうしないと、そもそもOSがありません。ですから、私は20冊の本の割り当てを完全に取得することはできません。そして、私の同僚には、利用可能なスペースをさらに使い果たすための独自の作業があります。

さらに、アシスタントは本をオフィス間で移動するように訓練されていません(能力レベルには制限があることに注意してください)。既存のWindowsアーキテクチャには、別のリモートコンピューターのRAMを直接使用する機能はありません。

さて、アシスタントが実際にオフィス間で本を適切に移動し、本の所有権を明確に覚えるように訓練されていると想像してみてください。それだけでなく、アシスタントが他のオフィスから本を取り出すときも、不要な本をシャッフルしてキャビネットに戻し、自分の机のスペースを空ける必要があります。なぜ彼をそんなに散歩させるのですか?

アプリもOSもそれを実現する方法を知らないため、少なくともあなたのユースケースでは、1台のコンピューターを終了して、ネットワーク経由で別のコンピューターにデータを保存/取得することはできません。そして、それもあまり効率的ではありません。

ラップトップでの作業を続行する場合は、RAMを増設するか(大きなデスク)、ソリッドステートディスク(本をすばやく見つけるための機能を備えたキャビネット)をインストールします。

一部の構成では、リモートコンピューターからデータを保存および取得する方が実際には高速になる可能性があることに注意してください。それを行うクラスタリングソフトウェアテクノロジーがあり、低速の回転ディスクにアクセスする方が、シナリオに対応できません。

ハードウェアリソース間のデータアクセスの時間スケールを検討してください


7
質問を文字通りに解釈しすぎていると思います。明らかに、コンピュータがそれぞれ10GBを持つことは不可能ですが、原則として、コンピュータが10GBを共有することは可能です。たとえば、ラップトップが2GBに制限されている代わりに、それぞれが5GBを使用することができます。パフォーマンスはひどいですが、それは原則的に可能です。
David Richerby、2015年

@DavidRicherby-質問は文字通り読む必要があります。書かれた言葉は素晴らしいものです。それが意味する唯一のことは、まさにあなたが言うことです。そのため、著者は文字通り、2つの独立したコンピュータのシステムメモリを組み合わせてパフォーマンスを向上させることができるかどうかを尋ねていますが、もちろん不可能です。
ラムハウンド2015年

6
@Ramhoundこの回答を誤解しているようです。この答えは、2つのシステムを取得するために2GBのシステムと8GBのシステムを統合することは不可能だと言うそれぞれ(つまり、存在しない20ギガバイトの合計、になるので)10ギガバイトとします。それは文字通り過度に解釈され、それが質問が尋ねるものです。2 GB + 8 GBを組み合わせて2つのシステムで10 GBを共有することについて話しているのですが、これは質問の目的です。したがって、質問は文字通り読む必要があるという主張で、足を踏みにじって打ちました。文字通りの質問はナンセンスです。意図された質問は少なくとも理にかなっています。
David Richerby、

@DavidRicherby-あなたがそう言うなら。答えが参考になりました。2つの独立した独立した自動車の2つのガスタンクを結合できないのと同じように、2つの独立したコンピューターシステムのシステムメモリを結合できないことを正しく指摘しました。もちろん、彼が220を考え出すかどうかは確かではありませんが、実際には意味がありません。
ラムハウンド2015年

この質問と回答はGIGOの完璧な例です:)
Ratna
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.