2

私の知る限り、Ruby アプリケーションを 64 ビット Ruby で実行すると、32 ビット Ruby よりも多くのメモリを消費します。これはポインター アドレス空間が原因です。

私のマシンには 64GB の RAM が搭載されているため、64GB のメモリ全体にアクセスするために、64 ビット OS をインストールしました。

  1. 64 ビット OS に 32 ビット Ruby をインストールすることはできますか?
  2. 64 ビット OS に 32 ビット Ruby をインストールすると、32 ビット Ruby は 64 GB RAM を使用できるようになりますか?
  3. 64 ビット OS で 32 ビット Ruby を実行することの長所と短所は何ですか?

Ruby on Rails アプリケーションを 64 ビット Ruby で実行すると、32 ビット Ruby よりも多くの RAM を消費することに気付きました。私は Phusion Passenger を使用しているので、要求ごとに新しい Ruby プロセスをフォークまたは作成します。そのため、個々の Ruby プロセス (ユーザー要求) は 32 ビット Ruby で 2 GB に制限されているか、Ruby プロセス全体が 32 ビット Ruby で 2GB のみにアクセスするように制限されています。少しルビー。


私の Rails アプリケーションのコードベースは大きく、同じコードを複数の Rails アプリケーションとして単一のサーバーで複数のクライアントにレプリケートすることを計画しているため、RAM のすべての MB が私にとって重要です。したがって、より多くの RAM が空いていれば、追加のクライアントに対して追加のアプリケーションを実行できます。

アプリケーション アーキテクチャの詳細については、「(Phusion Passenger + Nginx を使用して) 同じポート (80) を持つ複数のインスタンス名で同じ Rails アプリを実行する」を参照してください。

4

2 に答える 2

4

64 ビット OS に 32 ビット Ruby をインストールすることはできますか?

  1. はい、可能です。

64 ビット OS に 32 ビット Ruby をインストールすると、32 ビット Ruby は 64 GB RAM を使用できるようになりますか?

  1. いいえ、64 GB RAM にはアクセスできません。32 ビット プロセスは、デフォルトで 2 GB に制限されています。LARGE_ADDRESS_AWARE とマークされている場合は最大 3 GB ですが、それ以上ではありません。

64 ビット OS で 32 ビット Ruby を実行することの長所と短所は何ですか?

  1. 短所: 2 GB のメモリに制限されています。

しかし、あなたは何も心配していません。32 ビット (4 バイト) から 64 ビット (8 バイト) へのポインター サイズは、ポインターにのみ影響します。64 GB の RAM とそれらを使用できる 64 ビット プロセッサがある場合は、64 ビット バージョンを使用してください。

于 2013-04-15T18:17:43.730 に答える
2

...単一のサーバーで複数のクライアント用の複数のRailsアプリケーションと同じコードを複製する予定なので、RAMのすべてのMBが私にとって重要です...

モノリシックなアプリケーションを作成するのではなく、それを呼び出すすべてのアプリに対して可能な限り多くの処理を処理する中央コードを呼び出す小さな Rails アプリを作成します。少し遅くなりますが、メモリに関してははるかに効率的です。

バックエンドとしてRabbitMQのようなものを調べてください。驚くほど効率的で、この種のタスクには最適です。AMQP gem はあなたの味方です。

JSON を使用してキューにデータを投げます。これにより、デバッグが容易になります。

于 2013-04-15T19:19:43.200 に答える