1

私はいくつかの呼び出しを調べるためにappstatsを使用しています。memcache呼び出しを行い、結果を返す単純なビューがあります。Appstatsによると、合計時間(総計)は約15ミリ秒です。しかし、私がブラウザで観察するのは、242ms程度です。実際、apacheベンチを使用しても同じ結果が得られます。別のネットワーク(ec2インスタンスを使用)を試して、ラウンドトリップ時間が異なるかどうかを確認しましたが、ほぼ同じ結果が得られました。サーバーへのpingには約13または14ミリ秒かかります。

私は間違いなくここで何かが欠けています。私が説明できない約180〜200ミリ秒の遅延があります。アプリエンジンとappstatsの経験に基づいて、私は誰かが私が欠けているものに私の目を開くのを手伝ってくれることを望んでいます。

興味があればいくつかの環境の詳細...python2.7; テストでwebapp2とFlaskの両方を使用しました。私のapacheベンチテストはすべてシングルスレッドで100回ヒットしています。

洞察をありがとう。

4

1 に答える 1

1

私の経験では、appstats と合計時間には常に違いがあります。これはログで確認できます。合計レイテンシがリストされている場所。Appstats は、コードがリクエストを処理するのにかかった時間を示しますが、ログには合計 i/o 時間が表示されます。私がワークアウトできることから、増加した時間は負荷分散と、アプリ エンジンが内部的にリクエストをキューに入れ、スケーリングが必要かどうかを評価する方法にかかっています。また、100 リクエストのバーストを送信すると、アプリの設定によっては、新しいインスタンスが開始される前に最小限のインスタンスでこれらのリクエストを処理する可能性が高いため、実際には違いがより顕著になる可能性があります。

アプリのパフォーマンスを向上させたい場合の経験則としては、appstats を 100 ミリ秒未満にし、残りはどれだけのお金を消費したいかによって決まります。

公式ラインに興味はありますが、アプリ エンジンで 3 年間働いてきた私にはそう思われます。

于 2012-10-24T06:07:20.567 に答える