3

Heroku でホストされた環境で、かなりの量のトラフィックでいくつかの Facebook アプリを実行しています。

これらは 2 つの php ファイル (1 ページのアプリとデータ用の AJAX エントリポイント) を使用するシンプルなアプリです。これらは非常にシンプルで、サーバー メモリを実際に必要とせず、ほとんどのリソースが画像の提供に使用され、最も重いものが使用されます。 CPU負荷に関しては、Web APIへのcurlリクエスト、またはデータを取得するためのデータベースへの呼び出しです。

トラフィックとサーバーの同時実行要求 (平均で 10 ~ 20 の dyno) のため、アプリのパフォーマンスを最大化するための設定方法を調査してきましたが、最大のボトルネックは Heroku のデフォルトのboot.shApache デプロイ スクリプトによって課される制限にあることがわかりました。デフォルトMaxClients=1でアプリケーションに設定されます。

これには、Apache がHTTP リクエストを処理するスレッドを 1 つに制限する効果があります。

2 倍の費用がかかり、2 倍の RAM と CPU パフォーマンスを約束する、新しく改良された2x dynoが登場します。

これで、主なボトルネックが HTTP リクエストの処理である場合、RAM が大きな違いをもたらさないことが理解できますが、新しい dyno が設定されると想定しますMaxClients=2(まだ確認できていません)。通常使用する 1x dyno の量よりも半分の数の 2x dyno でアプリを実行した方がよいでしょう。誰も答えを知っていますか?

4

1 に答える 1

3

2x dyno まで上げても、MaxClients は変わりません。複数の同時要求をサポートするには、アプリケーション構成を変更する必要があります。

于 2013-05-02T14:28:21.223 に答える