Heroku でホストされた環境で、かなりの量のトラフィックでいくつかの Facebook アプリを実行しています。
これらは 2 つの php ファイル (1 ページのアプリとデータ用の AJAX エントリポイント) を使用するシンプルなアプリです。これらは非常にシンプルで、サーバー メモリを実際に必要とせず、ほとんどのリソースが画像の提供に使用され、最も重いものが使用されます。 CPU負荷に関しては、Web APIへのcurlリクエスト、またはデータを取得するためのデータベースへの呼び出しです。
トラフィックとサーバーの同時実行要求 (平均で 10 ~ 20 の dyno) のため、アプリのパフォーマンスを最大化するための設定方法を調査してきましたが、最大のボトルネックは Heroku のデフォルトのboot.sh
Apache デプロイ スクリプトによって課される制限にあることがわかりました。デフォルトMaxClients=1
でアプリケーションに設定されます。
これには、Apache がHTTP リクエストを処理するスレッドを 1 つに制限する効果があります。
2 倍の費用がかかり、2 倍の RAM と CPU パフォーマンスを約束する、新しく改良された2x dynoが登場します。
これで、主なボトルネックが HTTP リクエストの処理である場合、RAM が大きな違いをもたらさないことが理解できますが、新しい dyno が設定されると想定しますMaxClients=2
(まだ確認できていません)。通常使用する 1x dyno の量よりも半分の数の 2x dyno でアプリを実行した方がよいでしょう。誰も答えを知っていますか?