ネットワークを介してRAMを共有する


49

私の同僚は、大量のメモリを消費するアプリケーションを使用しているため、システムが非常に遅くなります。インターネット経由で他のPCとメモリを共有することはできますか?

システムには8 GBのRAMがあり、アプリケーションは6 GB以上を消費します。


5
リモートデスクトップ、VNC、またはX11を介して高性能サーバーで実行しますか?
WGroleau

3
回答が既に述べたように、キャッシュとして大きなストレージドライブ(HDDまたはSSD)を使用する方が良いでしょう。
Firebug


79
より多くのRAMをダウンロードする運がもっとあるかもしれません...
Mehrdad

4
Windowsの最新バージョンでは、USBスティックまたはSDカードを使用してパフォーマンスを改善できます。実際には、デバイスがRAMとして使用されることを意味するのではなく、RAMとプラッターベースのハードドライブ間で実行される何かを意味します。
サルマンA

回答:


162

他の場所にインストールしたり、専門のハードウェアやソフトウェアを使用したりすることができない「標準」マシンで実行されるスタンドアロンアプリケーションのみを検討しました。その他の回答は(正しく)ソフトウェアの移行またはタスクの専用ハードウェアに対応しています。

ネットワークを介して「RAMを共有する」方法は、そのネットワーク媒体の制限を受けます。ギガビットイーサネットでさえ約100MB / s(メガバイト)に制限されているため、これは「RAM」速度も制限されることを意味します。

100MB / sは、実際にシステムにあるRAMの速度のほんの一部です。プログラムは非常に遅くなり、90年代前半からコンピューターで実行されているように感じます。

最新のハードドライブは、シーケンシャルな読み取りと書き込みの場合、これよりわずかに高速です。SSDは数倍高速です。

これはレイテンシーの問題を無視しているため、プログラムが再び遅くなります。

速度の遅さやその他の技術的な問題により、これは「ホーム」または「オフィス」システムで解決しようとする価値があると考えられている問題ではありません。必要に応じてRAMを追加購入する方が安くて効果的です。

RAMを追加購入するか、ページファイル用にSSDを購入するだけです。これを行う他の方法はありませんが、ほとんどメリットのない非常に多くの作業やハードウェアを必要としません。


46
ギガビットイーサネットでのスワップ/ページングは​​、ローカル磁気ディスク上のページファイルよりも待ち時間が短い場合があります。たとえば、10ミリ秒のディスクレイテンシとローカルイーサネットの1ミリ秒未満のping時間。ページファイル(またはスワップ先のiSCSIデバイス)を保持しているファイルサーバー RAM 内でホットファイルを保持している場合は、勝つ可能性があります。Windowsがネットワークファイルへのページングをサポートしている場合はIDK。(Linuxは確かにそうですが、これはWindowsの質問です)。ああ、質問が「インターネット経由で」と言っているのを見たので、nvm。
ピーター

2
@MarkHuこれがスーパーユーザーに尋ねられたので、質問者は使用されているソフトウェアのコードを制御できるとは思わない。
oldmud0

2
@PeterCordesは、RAMまたはSSDを追加購入することによる損失です。さらに確実にWindowsでもそうです。;)
jpmc26

11
自宅および「通常の」オフィスで使用するギガビットの@TomTomは、デスクトップマシンで得られるものとほぼ同じです。バックボーンインフラストラクチャで25Gと100Gが一般的(または少なくとも利用可能)であるからといって、デスクトップ上に表示される可能性が高いとは限りません。25GigEは言うまでもなく、手頃なコストで地元のサプライヤでデスクトップ10GigEカードを見つけることすらできません。10GigEカードは、8GBメモリースティックの約4倍のコストです。どちらを合理的なアップグレードと見なすかを知っています。
木梅

9
「90年代初期のコンピューターで実行されているように感じます」-奇妙なことに、90年代のコンピューターは、今日のコンピューターよりもずっと速く感じました。
ジェレミーフィッサー

73

完全を期すために:InfiniBandでは、他のマシンのメモリに直接アクセスできます。

ただし、以下が必要です。

  • InfiniBandスイッチ
  • 各マシンのInfiniBandアドオンカード
  • これを使用するには、アプリケーションを特別にプログラムする必要があります

既存のネットワークでは機能せず、接続されているすべてのノードに完全に独立したインフラストラクチャが必要です。また、インターネット上では動作しません


53
また、RAMをさらに8 GiBほど増やすよりも確かに高価です:-)。
sleske

40
ああ、1桁程度しかありません;)
ジェラルドシュナイダー

7
Infinibandは必要ありません。RoCEも可能です。ただし、これには、RDMAをサポートするNICと、おそらくNICをサポートする新しいスイッチ、およびRDMAを使用するようにプログラムされたアプリケーションが必要です。
alex.forencich

7
+1は素晴らしいため、正しいのですが、この状況ではまったく役に立たない答えです:
daniel.neumann

1
あなたがする-より高価な25Gまたは100Gを取得しない限り。RDMAは遅延の問題を解決しません。
トムトム

19
Is there any alternative solution?

これは、データの性質に大きく依存します。

2つの異なるマシンで2つの異なるmysqlサーバーを実行できます。

次に、データを1/2に分割し、プログラムを作成して、移動先のサーバーを自動的に認識します。

もちろん、使用可能なサーバーがあれば、これを任意の数のサーバーに拡張できます。


一般に、「メモリを共有する」方法は、アプリケーションを別のマシンに積極的に移動し、利用可能な方法でリモートで操作することです。特に別のマシンがすでに利用可能な場合は、メモリを追加購入する代わりに間違いなく使用できます。+1
木梅

1
リモートデスクトップのような?
Innov

4
別々のOSを実行している2台のコンピューターがあり、それぞれにmysqlのコピーが実行されています。したがって、コンピューター#1は192.168.0.1、コンピューター#2 192.168.0.2(または何でも)になります。メインPCで、これらのIPの両方にアクセスしてデータを取得できます。mysqlまたはその無料の代替mariadbは、mymyにネイティブアクセスできるようにプログラムに追加するlibmysqlなどのライブラリを提供します。これは、リモートデスクトップ、そのクライアント/サーバーおよび/またはクライアントと複数サーバーの関係ではありません。
サイバーナード

15

はい、ネットワークブロックデバイスプロトコルを使用して、かなり簡単に実行できます(スワップを必要とするディスクレスシステムの場合、これを実行しました)。

nbd-serverサーバーマシンにインストールし、ホストごとのファイルを自動作成するように構成します。

クライアントマシンのNBDがカーネルにコンパイルされていることを確認してから、NBDにマウントされたデバイスにスワップするように構成します。nbd-clientパッケージは助けることができます。

上記が少しあいまいな場合は申し訳ありません-これを行ったマシンには、ここからアクセスできません。詳細にアクセスできる場合は、詳細を入力できる場合があります。

という代替のNBDサーバー実装がありnbdkitます。私はそれについて何も知りません。


質問にWindowsタグがあることがわかりました。Windowsについては何も知りません。申し訳ありません。
トビー・スペイト

8
あなたにスワップしているファイル・サーバがにキャッシュされ、スワップファイル続ける場合はLAN上のGigE上でスワップ+1は、ローカルのハード磁気ドライバーより低いレイテンシーである必要があり、その RAMを。HDシーク時間は約10ミリ秒で、LAN ping時間は約0.25ミリ秒です。WindowsがWindowsファイル共有(SMB)または他のプロトコルを介してページファイルで同様のことを行うことができるかどうかはわかりませんが、iSCSIが機能する可能性があります。OPは「インターネット経由」に言及しています。それは良い考えではないでしょう。ping時間がHDランダムアクセス遅延よりも短い場合を除き、勝ちではありません。
ピーター

これがどのように「追加のRAM」とみなされるかわかりません。ローカルディスク上のファイルに一部のデータをダンプするのと違いはありませんか?
ivan_pozdeev

Wndowsクライアントの場合、LinuxのブロックデバイスをSambaを介して共有し、ImDiskを使用してWindowsのディスクとしてマウントできます(サイズは手動で指定する必要があります)。
ivan_pozdeev

私も過去にLinuxでこれを行ってきましたが、独自のnbdサーバークライアント実装を使用しましたが、nbdブロックデバイスをスワップパーティションとして使用するとうまくいきました。
ハンシェンリック

9

「Windows 10、ワークステーションには8G B RAM」という小さな重要でない詳細を考えると、正解はたった1つしかありません。RAMを追加購入し、無駄を減らすことです。

SSDを購入してページファイルを配置するのが次に最適なオプションですが、実際には...より多くのRAMを購入します。

ネットワーク経由でページファイル(「共有メモリ」)を提供することはもちろん可能ですが、それは非常に悪い考えです。ネットワークを介したアクセス時間がローカルドライブにアクセスするよりも優れている境界線のケースが存在するのは事実ですが、一貫した低アクセス時間高帯域幅が同時に必要なため、それは使用例には無関係です。1つまたは2つのページフォールトを予測するのではなく、常にスワップしていることに注意してください。数千を支払うつもりがない限り、RAMやSSDを購入する方法に近い方法はありません。

8 GBでは、Windows 10 メモリを大量に消費するアプリケーションを同時に実行するには十分ではありません。Word、Excel、Outlookを同時に実行するのに十分です。それはまさに何百万人もの人々が毎日仕事用ラップトップで生活しなければならない典型的な完全に使用不可能な「トータルでたらめな企業セットアップ」です。100-200通貨を別のメモリモジュールに投資すると、1週間以内にその費用が償却されます(数分かかっていたものが数秒かかり、時間がお金になります-残念ながら、これはローカルBeanカウンターの頭に入れるのが難しい場合があります)。

または、マシンを所有している場合は、NTLiteを使用してWindows 10のがらくたを削減し、メモリフットプリントを削減できます。または、ほとんど不要なサービスの80%だけをオフにすることもできます。信じられないように思えますが、2 GB未満のRAMを使用して、最新バージョンのWindowsを実行することは可能です。

しかし、実際には、RAMを購入するだけです。Windowsのがらくたを削減するために貴重な時間を費やすよりもはるかに高速で簡単です。


2
ラムは本当に窓が悪いですか?私はラム(物理ドライブなし)で完全なシステムを使用してDebianを実行しており、多数の開いているWebブラウザータブ、LibreOfficeテキストとスプレッドシート、gimp写真編集、ビデオの視聴、音楽の聴取を行い、約3ギガ無料で利用できますプログラムまたはファイル用のスペース。全部で8GB。私は勝者ではありませんが、あなたの言葉から言うと、「トータルBSコーポレートセットアップ」はWindowsそのものによく似ています
...-Xen2050

1
まあ、それは議論の余地があります-OPはそれを正しく持っています。16GBメモリを使用するアプリケーションは、特定の分野ではそれほど珍しいことではありません(ヒント:メールを書かないで、言葉も結構です。ほとんどの人は小説を書きません)。これはわずかな投資です。16GBのメモリはおかしなランチなどです。
トムトム

7
@ Xen2050本当にそんなに悪いのかと思っていたので、6GBのWindows 10マシンでOutlook、Excel、Word、Edgeを開いて、SQL Serverの非常に小さなインスタンスを実行していますが、Malwarebytesは170MBで何かをしているようです、Visual Studio 2017を開き、ここでFirefoxを開いたところ、65%のメモリ使用率があり、Windowsは圧縮メモリの使用を開始する必要さえありませんでした。そのため、IME、Windows 10は8GB未満のRAMで正常に動作し、とにかく、Windowsに対するDamonの明らかな嫌悪は答えとは無関係です。
アンドリューモートン

1
@Damon:しかし、余分なRAMを消費しているものについて何らかの分析を行わない限り、「Windowsがらくた」と「雇用者がインストールしたアフターマーケットがらくた」を非難する根拠はありません。Windows 7、Windows 8.x、およびWindows 10では、多くの人(自分を含む)がメモリ集約型の計算を行っているため、この種の問題は発生していません。 Windows自体の。
ベンフォークト

6

単純な代替策は、リモートPCアプリケーション実行し、おそらく専用のユーザーアカウントで実行し、RDP、VNCなどの便利な方法で制御することです。


リモートPCに十分なRAMがある場合...
LateralTerminal

1
@LateralTerminal暗示されています。
クロンネックス

2
ええ、ネットワークを介して2台のマシンのRAMをマージします...ネットは機能しません。通常のアプリケーション(ボタンとメニューのある正方形、灰色の種類)では機能しません。
rackandboneman

6

別のオプションは、RAMを簡単にスケールアップまたはスケールダウンできる環境にアプリケーションを一時的にデプロイすることです。

Amazon AWSインスタンスを見ると、1回の再起動でサイズを変更できます。

IE C5.largeのような小さなインスタンスには4GBのRAMと2つのコアがあり、Linuxの場合は1日あたり2.04ドル、Windowsのインストールの場合は1日あたり4.26ドルです。EBSディスク領域は追加コストであり、割り当てられたGBに比例して拡大します。

この小さなサイズでシステムをセットアップし、ノイズが発生したい場合は、システムを停止し、インスタンスサイズを変更して、ソフトウェアを実行します。

  • m5.4xlargeは、64 GBのRAMと16コアで、1日あたり18.44ドルまたは窓の場合36.10ドルです。
  • r4.8xlargeは244 GBおよび32コアで、ウィンドウが$ 51.07 USD /日または$ 86.40 USD /日です。
  • x1.32xlargeは1952 GBおよび128コアで、Windowsで$ 320.12 USD /日または$ 461.43 /日

または最大のもの...

  • x1e.32xlargeは3904 GBおよび128コアで、1日あたり640.52米ドルまたはWindowsで781.82 /日です。同僚がこれ以上必要な場合は、問題をより最適な方法で書き直す必要があります。

https://www.ec2instances.info/ は、適切なサイズを選択するのに役立ちます。一部の場所は他の場所よりも費用がかかります。シンガポールと北カリフォルニアは高価です。ただし、VMが実行されていないときは、ディスクストレージのコスト以外に費用はかかりません。

欠点は、このメモリを長期間必要とする場合、VMの時間を購入するのが高価な方法であるということです。ただし、会計士は、アップグレードなどの資本コストよりも、レンタルなどの運用コストを好む場合があります。


1
この答えは、OPのリクエストによる「ネットワークを介したRAMへのアクセス」に対応していないことを認識しています。これは、より多くのRAMを持つリモートホストにアクセスするようなものです。しかし、いくつかの場所で予算がどのように機能するかを知っていることは、資金調達可能な方法で仕事を終わらせるための有効な解決策かもしれません。
クリギー

4

他の人が言ったように、それは技術的には可能ですが価値はありません。

ただし、コンピューターの使用を高速化する場合は、一部のアプリケーションをリモートサーバーに外部化することができます。

これは、主に作業対象と使用するアプリケーションに依存します。小さなデータ出力に多くの処理時間を必要とするプログラムを実行している場合、コンピューターとは異なるサーバーで実行することで、他の作業中に時間とリソースを節約できます。

私が念頭に置いている例は、変更をプッシュするたびにコードをテストするサーバーです。このようなソリューションのアイデアは、特定のユースケースに限定されるということです。


4

PCにRAMを追加購入するようITに依頼し、タスクマネージャーでアプリの使用状況のスクリーンショットを使用してその必要性を示します。


4
実用的なソリューション...他のシステムからより多くのRAMを一時的に交換するようITに依頼することでさえ、「無料」の答えになります。
Xen2050

2
@ Xen2050一方、同僚が泣いているのは、彼のシステムが起動しなくなったからです。
ウィルテック

3
@Willtechは、ITがすべての部品の予備品、および稼働中のシステム全体の予備品を維持するのが通常で適切です。ダウンタイムは実際のコストです。
クリストファー人質

3

これには、Kove(http://kove.net/)。「バックプレーン」で動作するにはInfinibandインフラストラクチャが必要です(イーサネットは通常動作します)。ただし、詳細に応じてRoCEなどの他のオプションを利用できる場合もあります。これらは、コード変更なしの統合を可能にする多数の透過的なインターフェースと、より直接的なCPUアクセスによるカーネルバイパス用のAPIを提供します(つまり、カーネルオーバーヘッドを回避します)。パフォーマンスに関しては、アプリケーションによって異なります。CPUに縛られている場合、影響はごくわずかです(これは驚くべきことです)。ローカルホストでメモリ帯域幅が制限されている場合は、より大きなメモリが提供されますが、既存のボトルネックによって抑制されます。この場合、ワークロードにとって、ボックスに入れることができるよりも大きなメモリを持つことが有利ですか、とRAMが不足していませんか?仮想化およびpython機械学習ライブラリで(非常に)良い結果を見てきました。ハイエンドHPCアプリケーションはかなり悪くなる傾向がありますが、C APIを使用して、ノードカウント(ノードはCPUサイクルではなくRAMにあった)を削減しながらパフォーマンスヒットを許容できるように管理しました。これはMPIと比較してプラスです。 。これが同僚にとって良い解決策であるかどうかを判断するのは難しいですが、検討できるオプションです。お役に立てば幸いです。明確にするために、私はKoveで働いておらず、金銭的インセンティブもありませんが、長年彼らと協力しており、このテクノロジーは特定のコンピューティングの方法に実質的に影響を与える可能性があると思います。しかし、C APIを使用し、ノード数(CPUサイクルではなくRAMにノードがあった)を減らしながらパフォーマンスヒットを許容範囲に抑えることができました。これはMPIと比べてプラスです。これが同僚にとって良い解決策であるかどうかを判断するのは難しいですが、検討できるオプションです。お役に立てば幸いです。明確にするために、私はKoveで働いておらず、金銭的インセンティブもありませんが、長年彼らと協力しており、このテクノロジーは特定のコンピューティングの方法に実質的に影響を与える可能性があると思います。しかし、C APIを使用し、ノード数(CPUサイクルではなくRAMにノードがあった)を減らしながらパフォーマンスヒットを許容範囲に抑えることができました。これはMPIと比べてプラスです。これが同僚にとって良い解決策であるかどうかを判断するのは難しいですが、検討できるオプションです。お役に立てば幸いです。明確にするために、私はKoveで働いておらず、金銭的インセンティブもありませんが、長年彼らと協力しており、このテクノロジーは特定のコンピューティングの方法に実質的に影響を与える可能性があると思います。


インフィニティバンドのセットアップ用に購入できるメモリは何ギガバイトですか?
joojaa

ええ、ここでの主な問題は、8GBのメモリのみを持ち、16を必要とすることについて語る小さなポイントです。 。
トムトム

@jooja 6TBあります。私たちが見たものに基づいて、私たちは制限を見ていません。追加のリモートRAMアプライアンスを追加し続けることができます。それはかなり線形にスケーリングするようであるため、エンジニアリング/コストの問題です。1PBシステムは紙の上で一度設計しましたが、明らかにそれをテストすることはできませんでした。
ビル

@TomTom 8GBについてのコメントはありませんでしたが、はい、明らかに8GBと16GBのRAMを話せば、新しいマシンに数ドルで問題を解決できます。
ビル

まあ、数百ドルで、マザーボードが途方もなく古くて制限されていない限り、おそらくRAMを32GBにアップグレードできます。
ふわふわ

2

別の視点-問題はシステムリソースの制限ではなく、友人が書いている無駄なアプリケーションかもしれません。6 GBのRAMは非常に多くのメモリです。

他のアプリの多くが過度に肥大化しているという理由だけで、必ずしも友達のアプリケーションがそれらの1つである必要があることを意味しません。さまざまなプログラミング方法を使用すると、速度を向上させながらメモリ要件を削減できます。たとえば、アプリがメモリ内のデータセット全体をロードし、その上で動作する場合、選択インデックスがほとんどない(ローカルまたはリモート)SQLデータベースにデータを保存し、そこにアクセスするよりもはるかに無駄になります。一度にロードするのではなく、可能であればブロックごとにデータを処理します。メモリ内の構造も無駄です。使い終わったらメモリを解放します。代わりにメモリマップできるものをRAMにロードしないでください。そして、他の何百ものヒント...

ただし、アプリケーションが他のコンピューターに保存する必要のあるメモリを本当に必要とする場合は、memcachedなどを使用してそこに保存するように変更できます。ボーナスポイントは、将来的にはより適切に拡張されるためです。


5
6GBのメモリは、アプリケーションによってはそれほど多くありません。エンドユーザーでさえ写真の編集(photoshopはRAMを愛し、ハイエンドのカメラは64メガピクセルの画像を撮影します)、ビデオ編集(さらに悪いこと)を行い、数学的な作業があります。ヘック、エクセルでさえ、数GBを喜んで使用します。全員がtwitterなどを使用してメールを書いているわけではありません。
トムトム

@TomTom高いメガピクセル処理が必要な場合、(要求の性質上)高いメモリ要件が発生します。ただし、ExcelシートでDNAゲノムスプライシングを実行していて、まだ2〜3 GBのRAMを使用している場合を除き、これがまさに私が話している肥大化した、ずさんなプログラミングです。ご存知のように、数十年前のLotus 1-2-3では、Excelよりも3桁少ないRAM(および少なくとも数百倍のプロセッサー)を搭載したマシンで、自宅の予算が高速(または高速)で処理されていました今日の。
マティヤナリス

1
なんて無知なアンサー。私はあなたが人々がエクセルを使用しているものについてのあなたの経験が非常に少ないと仮定することができるだけです。Microsoftが64ビット版のOfficeを作成したとき、ほとんど使用しないと言いました-いくつかの人々(主にマネージャー)がExcelを介してひどく大きな分析を実行し、多くのギガバイトのメモリを使用するため、AccessとExcelを除きます。Excelの柔軟性とプログラマー以外の人への近づきやすさにより、ツールを使用できるようになります(統計学者はRの使用方法を習得する傾向があります)。私は個人的に、一部の金融関係者による200シートのExcelファイルを見てきました。
トムトム

あなたの家の予算がExcelで計算するのに長い時間がかかるなら、あなたは私よりもはるかに裕福です。Excel対1-2-3の興味深い質問-コア計算ループは1-2-3の方が高速になる可能性があります。しかし、マルチコアマシンでは、Excelは簡単に1-2-3に勝ちます。そして明らかに、巨大なゲノムスプライシングシートは、おそらくシートサイズのために1-2-3で開かないでしょう。透明性の利益のために、私は...私はバイアスすることができるので、私は以前、コアのcalcチームにエクセル上で働いていたことを認めるべき
クリス・レイ

1

ユーザーはを求めたので、どのようにネットワーク上で共有メモリへ。それがいい考えではない場合。だから、実際にあなたがそれを行うことができる方法はここにあります。

これは良いアイデアだとか、パフォーマンスが上がるとは言いませんが、うまくいくはずです。

  • コンピューター1 = "マスター"-コードが実行される場所
  • コンピューター2 =「子」-寄付者

これは、iSCSIマウントポイントを作成できるWindows Serverではないと想定しています。

コンピューター1の手順:

  1. Dataramの無料のRAMディスクをダウンロードします:http ://memory.dataram.com/products-and-services/software/ramdisk
  2. ramdiskを作成し、NTFSでフォーマットします-指示は彼らのサイトで利用可能です
  3. ディスクマネージャー内で、NTFSでフォーマットされたRAMディスクにVHDファイルを作成します。
  4. SMBでネットワーク全体でRamdiskルートディレクトリを共有する-ドライブを右クリックし、共有、このフォルダーを共有

コンピューター2の手順:

  1. cildからドライブに共有ドライブをマップします
  2. 上記の手順3で作成したVHDをディスクマネージャーにマウントします
  3. Windowsページファイルの移動を使用して、ローカルページファイルの場所をマウントされたVHDに移動します
  4. 他のページファイルエントリを削除します。

できた!

警告-Windowsでページファイルをネットワーク共有に移動できる場合、VHDナンセンスをスキップできる場合があります。このオンラインの例はあまり多くありません(理由は明らかです)。

完全なシステムの不安定性、または完全に何か他のものが発生する場合があります。誰も実際に何が起こるかわかりません。


0

あらゆる種類の「メモリ」だけでなく、ネットワーク上で共有するための「RAM」に言及したように、最終的な答えは理論的には「はい」、実際には「いいえ」です。

一方、ストレージやその他の一時データなどの他のタイプのメモリは、さまざまな目的や理由でネットワーク上で定期的に共有されます。同様に、必要に応じてRAMを技術的にネットワーク上で共有することもできます。しかし、パフォーマンスとコストは現実の世界で実行するには高すぎるでしょう。

RAMまたはランダムアクセスメモリは、オペレーティングシステムによって作業領域として使用されるため、多くの読み取り/書き込み操作が実行されます。平均的なシステムでは、RAMを使用したデータ速度の容量は他の部品と比較して最高です。ネットワーク上にRAMを配置する場合、非常に高速なデータ転送容量が必要であり、技術的に達成できる場合でもコストは非常に高くなります。ネットワーク速度のアップグレードにかかる費用はごくわずかですが、マシンのRAMをローカルで取得できます。


0

通常、アプリケーションは仮想メモリで実行されるため、仮想メモリ要件はシステムの使用可能な物理メモリを超えることができ、パフォーマンス以外の影響はありません。オペレーティングシステムは、仮想メモリをディスクにページアウトするだけで、アクティブに使用するために必要な瞬間に物理メモリを解放します。これは通常、妥当な局所性を備えたアプリケーションで適切に機能します(任意の時点でのアクティビティは、アプリケーションの仮想メモリ空​​間の限られた領域にある程度集中します)。アプリケーションのローカリティが低い場合(常に仮想スペース全体でメモリを参照している場合)、すべての仮想メモリを物理メモリに収容できない限り、パフォーマンスが低下します(すべての仮想メモリが常駐します)。

そのため、ここにはいくつかの可能性があります。

  • アプリケーションのフットプリントが大きいだけで局所性が良い場合は、使用可能なコンピューターで実行できるはずです。より多くのメモリを搭載したコンピュータでは、パフォーマンスが許容される場合もあれば、著しく改善される場合もあります。
  • ローカリティが低い場合は、使用可能なコンピューターで実行されることに気付くかもしれませんが、非常に不十分です。(これはあなたの場合のようです)
  • (想定される)磁気ディスクドライブをソリッドステートドライブにアップグレードします(かなり高速です)
  • 使用可能なコンピューターにメモリを追加します(可能な場合)
  • より多くのメモリを搭載したコンピュータを見つけて、それを実行する必要がある場合があります。
  • アプリケーションを改善して、仮想フットプリントを小さくするか、ローカリティを改善します(アプリケーションの作成者に関連している場合、または関連している場合)。

リモートコンピューターでメモリを使用するという考え方は、基本的にはネットワーク化されたページングファイルを作成することです。理論上は機能しますが、実際には、ページングファイルがネットワーク帯域幅と遅延のためにコンピューター(ハードドライブ)に対してローカルである場合、パフォーマンスははるかに向上します。リモートシステムがメモリ内またはディスク上でページングファイルをホストしているかどうかは関係ありません。ボトルネック(パフォーマンスの最も重要な制限)はネットワークになります。これはインターネット上で特に当てはまりますが、リモートコンピューターが同じLANに隣接している場合にも当てはまります。


Windowsはネットワークドライブ上のページファイルを許可しないため、十分に高速であっても、実行することはできません。
ジェイミーハンラハン

@JamieHanrahan どうやら、レジストリで直接設定を変更することができます。ネットワークドライブはWindowsのユーザーごとであるため、一部の詳細が除外されているのでしょうか。また、再起動後にこれが壊れると思われます。
ivan_pozdeev

1
それにもかかわらず、それはひどいアイデアであり、UIがそれを排除する理由です。ネットワーク接続は、ページングに対して信頼できるほど信頼性がありません。多くのカーネルデータ(ページプール)をページングできることに注意してください。非常に短い時間でもアクセスできない場合、OSはクラッシュします。
ジェイミーハンラハン

0

これは、それがどのタイプのアプリケーションであり、ラムが何のために使用されるかに本当に依存します。

たとえば、多くのWebアプリケーションは、memcachedサーバーに接続することにより、ネットワーク経由でRAMを使用できます。これにより、大量のRAMを備えた別のコンピューターにキャッシュデータ(およびアクセスが高速になるはずのその他のデータ)を格納できます。

もちろんこれはアプリケーション固有であり、memcachedを使用できるアプリケーションが必要です。ブラウザはこのようなキャッシュバックエンドの使用をサポートしていないため、これはスラックの2番目のインスタンスを開くのに役立ちません。


-1

RAMを共有する代わりに、そのアプリケーションコーディングして子.exeファイルを作成します。このファイルは、ネットワークPCで実行され、そのPCでも同様に実行されます。

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