3

私はMySQL、MongoDB、NodeJS(およびSocketIO)を使用するRailsアプリケーションを持っています。今、アプリケーション(すべて)は1つのボックスの中にホストされています。ユーザー数が増えたときに何をすべきかを知りたい。別のボックス(MySQL、Node、Mongoの別のボックスなど)に別の要素をホストする必要があるかどうかを判断するにはどのような要素を考慮する必要がありますか。私はちょうどその単一のボックスを大きくする必要がありますか?私が行くことができるベストプラクティスの方法はありますか?1台のサーバーに複数のサーバーまたはすべてがありますか?

あなたが私にこのトピックに関するリファレンス、ガイド、リサーチを提供できる場合は、してください。私は配備とサーバー構成でスーパーnoobです。

答えて

3

短い答えはすべてを独自のボックスに移動することです。より長い答えは、アプリの使用状況によって異なります。

Nagiosなどを使用して、アプリケーションのリソース使用率、つまり各サービスで使用するCPUとRAMの量を監視することをお勧めします。 1つのリソースが多すぎると(そしてページの読み込み速度に悪影響を与える)それぞれのリソースが起動したら、それを自分のボックスに移動します。

その後、このボックスを監視して、必要に応じて腕を上げたり、シャードアウトしたりしてください。

high scalability blogは他の人が行ったことを読むのに適しています。

4

私たちは少し前にこのジレンマに直面し、より強力なシングルボックスにアップグレードするだけで十分であり、さらに3-4倍まで成長する余地があることがわかりました。

最も重要なことは、潜在的なボトルネックを特定することです。

このケースでは2つのボトルネックがありました。ディスクI/Oとデータベースのメモリ利用能力

新しいサーバーでは、ディスクI/Oを最大限にするようにハードドライブアレイを構成し、データベースソフトウェアをアップグレードしてより多くのメモリを使用できるようにしました。実際、DBMSはデータベース全体をメモリに保持し、必要に応じてディスクへの書き込み操作のみを実行するようになりました。これによりパフォーマンスが大幅に向上しました。

関連する問題