2

私はJavaのバックグラウンドを持つ開発者であり、RubyonRailsを初めて使用します。私の疑問は、Javaの原因でサーバーに24 GBのRAMがあり、その投稿で説明されているように、JVMの制限のために効果的に使用できないこと です。最大JVMヒープサイズの理解-32ビットと64ビット。Ruby On Railsには物理メモリ(RAM)に関連する制限がありますか?少なくとも20 GBのRAMをバーストするまで、単一のPhusionPassengerでN個のRailsアプリケーションを実行できるシナリオを示しています。私がこれを求めている理由は、単一のサーバーで50の学校管理アプリケーションを配置することを計画しているので、50のレールアプリケーションが可能であるか、Javaで取得するもののようなメモリエラーから抜け出すつもりです。

4

1 に答える 1

6

Rails でメモリを管理することは、特に科学的なプロセスではありません。アプリケーション間のばらつきはかなり大きく、簡単なベンチマークはありません。ただし、経験則として、アクティブな Rails インスタンスごとに 50 ~ 100MB を割り当てます。Passenger には、同様のインスタンス間で大量のメモリを共有するいくつかのトリックがありますが、それほど効果的ではありません。

20GB のメモリは、少なくとも Rails の観点から、アプリケーションの少なくとも 20 のインスタンスをホストできる必要があります。ただし、これらのサイトがビジーな場合は、データベース用にそのプールから少なくとも 4 ~ 8 GB のメモリを割り当てる必要があります。

Ruby には、使用できるメモリの量に関する本質的な制限はありません。特に、多くの異なるプロセスに分散している場合はなおさらです。通常、ユーザー プロセスで使用できる場合は、使用できます。

サイトがビジーでない場合、メモリはまったく消費されません。Passenger は、アイドル状態のプロセスを自動的にスピンダウンして解放します。実際には、断続的にアクセスされるサイトはほとんど影響を与えません。

于 2012-06-30T04:39:02.013 に答える