najeiraです。
Pending Latencyの設定は
「空いているインスタンスがない場合どれくらい待つか」
ですので、空いているインスタンスがあるときには
新しいインスタンスが起動されないのかなと思います。
> 常時立ち上がっているインスタンス、及び新規に起動したインスタンスの処理リクエスト数は2,3件程度
ということなので、1つのインスタンスで処理ができてしまって、
他のインスタンスに処理が回っていないという可能性はありませんか?
もっとリクエストを増やしてテストすると結果が変わるかもしれません。
>> Concurrent Requestsの設定はどうなっていますか?
> これって"threadsafe"の設定ですよね?
はい、threadsafeの設定です。
> これをtrueにしたらマルチスレッドで並列実行されてレスポンスが早くなると
いいえ、(基本的には)レスポンスは速くなりません。
1つのインスタンスが複数のリクエストを処理するようになるので、
インスタンスあたりの処理可能なリクエスト数が増えますが、
1つのリクエストの処理が速くなるわけではありません。
> インスタンスのLatencyの値は1000msを超え
この値は管理画面の「Instances」に表示される値でしょうか?
であれば、これはインスタンスの空きを待っている時間ではなく、
リクエストからレスポンスまでの処理時間の平均値だと思います。
これが1000msを超えているということは、処理内容が重いのだと思います。
もし複雑な計算などCPUを多く使うようなアプリであれば、
Frontend Instanceのクラスを上げるという手もあります。
標準のインスタンスはCPUが600MHzですので。
(設定は管理画面のApplication Settingsのページから出来ます)
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/google-app-engine-japan/-/Q7Y9gEoZz0kJ にアクセスしてください。--
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
このグループに投稿するには、google-app-engine...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine-japan+unsubscribe@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
--
Takashi Matsuo | Developers Advocate | tma...@google.com
tanoueです。ご連絡ありがとうございます。>次に、データを見ていないのでなんとも言えないのですが、レスポンスが遅くなるのは、urlfetch の返答が遅いからではないでしょうか?>AppStats で簡単に調べられますので、まずはパフォーマンスが落ちる原因を突き止めて、対処してみてください。>もうひとつ、urlfetch のパートがどうしても遅くてボトルネックになるようであれば、TaskQueue で処理を行うようにアーキテクチャの変更も検討してください。パフォーマンスについては、再検討いたします。集中アクセス時に複数のDynamicなインスタンスにリクエストが配分されず、ひとつのインスタンスにリクエストが集中してしまう挙動については、設定等では回避ができないでしょうか?
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/google-app-engine-japan/-/oLG5GozM7ZMJ にアクセスしてください。
このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
このグループに投稿するには、google-app-engine-j...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine-japan+unsubscribe@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
--
Takashi Matsuo | Developers Advocate | tma...@google.com
--このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/google-app-engine-japan/-/oLG5GozM7ZMJ にアクセスしてください。
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このグループに投稿するには、google-app-engine...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine-japan+unsubscribe@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
tanoueです。ご回答頂きありがとうございます。
AppStatsにて計測してみました。
>> 現在の私の考えでは、パフォーマンスが落ちてしまうのはひとつのインスタンスで
>> 処理しているのが原因なのではなくて、RPC が遅いからだと思っているのですが、違うのでしょうか?
>> それを確かめるためにも AppStats で RPC にかかっている時間を調べることをお勧めしています。
結果は以下の通りです。
なお、測定中にインスタンスの起動は発生しておりません。
【測定結果】
--------------------------------------------------------------
同時アクセス数 | ターンアラウンド時間
1 | 4.3 [s]
4 | 4.8 [s]
16 | 9.3 [s]
32 | 15.8 [s]
--------------------------------------------------------------
同時アクセス数 | RPCTotal
1 | 829 [ms]
4 | 999 [ms]
16 | 759 [ms]
32 | 870 [ms]
--------------------------------------------------------------
同時アクセス数 | GrandTotal
1 | 1011 [ms]
4 | 1237 [ms]
16 | 1008 [ms]
32 | 1092 [ms]
--------------------------------------------------------------
【実行環境】GAE / Java
threadsafe: true
Idle Instances: ( 1 - Automatic )
Pending Latency: ( Automatic - 20ms )
OS: WindowsXP
ブラウザ: Safari5
測定方法: ブラウザでGAE上のjspファイルにアクセス
上記結果の傾向としては、同時アクセス数が増加するに伴って
"ターンアラウンド時間"は増加しますが、"RPCTotal"と"GrandTotal"はほぼ横ばいとなっています。
よって、"RPC"が原因ではないと考えます。他に何か原因は考えられますでしょうか?
また、追加で1点質問させて頂きます。
例えばDynamicインスタンス(A,B)が2つ起動済みだとします。
複数のリクエストが来ると、初めはインスタンスAに順次割り振られて行き、
やがてインスタンスAがビジーになり、インスタンスBへ割り振られ始めると認識しております。
この「インスタンスAがビジーである」と判断されるための条件(または閾値)があれば教えて下さい。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/google-app-engine-japan/-/eklNmCdRAh4J にアクセスしてください。
このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
tanoue-san,
--
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/google-app-engine-japan/-/eklNmCdRAh4J にアクセスしてください。
このグループに投稿するには、google-app-engine...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine-japan+unsubscribe@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。