バックエンド インスタンスで同時に処理できるリクエストの数を知りたいと思っていました。
というわけで、以下のコードを実行してみました。
サーバー側コード
class BackendProcess(webapp2.RequestHandler):
def post(self):
id = uuid.uuid4().hex
time.sleep(30)
self.response.out.write(id)
バックエンド.yaml
backends:
- name: backstream
class: B1
instances: 1
options: public
クライアント側のコード
$('#backendtest').on('click', function(){
$.ajax({
type: 'POST',
dataType: 'text',
url: "{{backend_url}}" + '/test',
success: function(response){
console.log(response);
}
});
});
Chrome ブラウザーで 8 つのタブを開き、各タブで「#backendtest」ボタンをクリックしました。
すると、最初の6タブのレスポンスはほぼ同時に返ってきましたが、1タブ目のレスポンスから30秒後に7、8タブのレスポンスが返ってきました。
これは、バックエンド インスタンスが同時に 6 つのリクエストしか処理できないことを意味します。
そこで、次のようにインスタンスをもう 1 つ追加しました。
backends:
- name: backstream
class: B1
instances: 2
options: public
それでも、1 番目のタブの応答から 30 秒後に 7 番目と 8 番目のタブの応答が返されました。
どうやって来るの?????
これがログです。
2013-05-05 05:50:31.220 /test 200 30035ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (Gecko のような KHTML) Chrome/26.0.1410.64 Safari/537.31
I 2013-05-05 05: 50:31.217 保存されました。キー: appstats :001200、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.002; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:29.423 /test 200 30186ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:29.420 保存されました。キー: appstats:099400、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.003; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:08.984 /test 200 30034ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:08.982 保存されました。キー: appstats :078900、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.003; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:07.217 /test 200 30189ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:07.214 保存されました。キー: appstats:077000、部分: 27 バイト、完全: 1567 バイト、オーバーヘッド: 0.000 + 0.154; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:05.181 /test 200 30212ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:05.179 保存されました。キー: appstats :075100、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.002; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:03.214 /test 200 30102ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:03.211 保存されました。キー: appstats:073200、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.002; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:50:00.965 /test 200 30036ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:50:00.962 保存されました。キー: appstats :070900、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.002; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
2013-05-05 05:49:59.014 /test 200 30035ms 0kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML、Gecko など) Chrome /26.0.1410.64 Safari/537.31
I 2013-05-05 05:49:59.012 保存されました。キー: appstats:069000、部分: 27 バイト、完全: 1565 バイト、オーバーヘッド: 0.000 + 0.003; リンク: http://xxxxxxxxx.appspot.com/_ah/sta
フロントインスタンスでこの 8 リクエストテストも試しましたが、結果は同じでした。
したがって、これはバックエンドの現象だけではありません。