2

Java Google App Engine では、同時リクエスト / スレッドセーフ モードをオンにすることができます: https://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests

これを行う唯一の理由は、Google サーバーが特定の数のリクエストを処理するためにアプリのインスタンスを起動する必要が少なくなるため、費用を節約できる可能性があるためです。もちろん、これを行うということは、スレッドセーフなコードを書かなければならないということでもあります。

興味深い質問ですが、これによってどれくらいの費用が節約されるのでしょうか? ベンチマーク構成/アプリケーション機能/負荷の下で測定しようとした人はいますか?

4

1 に答える 1

2

これは本当にあなたのコードに依存します:

  1. シングル リクエスト モードでは、1 秒あたりのリクエスト数を簡単に計算できます。リクエストが完了するまでに平均 100 ミリ秒かかる場合、1 つのインスタンスで 1 秒あたり 10 リクエストを実行できます。

  2. 同時リクエスト モードでは、これは次の 2 つの要因に依存します。

    A. 使用しているインスタンスのタイプ - 私の知る限り、コアの数が異なるだけですべて同じです。コア数が多いほど、同時実行パフォーマンスが高くなります。

    B. リクエストが実行している CPU バウンド コードと IO バウンド コードの比率。コードがより IO バウンド (= データストアまたは他の外部サービスを待機中) である場合、CPU はより多くのコードを並行して実行できます。

私のアプリでは、基本インスタンスのリクエストごとに 200 ミリ秒で 15 ~ 20 rps が見られるため、シングル リクエスト モードとマルチ リクエスト モードの間の係数は約 3 ~ 4 であると言えます。

于 2012-04-08T07:30:35.643 に答える