4

Google App Engine/Java アプリケーションの Appstats グラフを見ると、RPC 間に説明のつかない時間のギャップが見られることがあります。添付のスクリーンショットでは、for ループからの MemcacheService.get への 2 つの呼び出しの間に約 2 秒のギャップがあります。コードをローカルで実行すると、この動作は発生しません。コードが App Engine クラウドで実行されている場合、このような異常の原因を調査するにはどうすればよいですか?

どうやらSOは画像を投稿させてくれないので、ここにグラフへのリンクがあります:http://i.imgur.com/bbCXr.jpg

4

2 に答える 2

1

App Engine は共有ホスティングであることを忘れないでください。売られ過ぎの共有 VPS ホスティングに近いものではないようですが、あなたはまだ他のサイトを実行しているマシンにいます。別のサイトのコードが一部のリソースを占有すると、アプリケーションのパフォーマンスに影響を与える可能性があります。私は、App Engine が機密性の高いリソースについても十分に認識していません。@Nick-Johnson のような誰かがそれらを教えてくれます。App Engine が動作する方法により、一般的な問題のほとんどが回避されます。そのグラフを見ると、別のアプリケーションがギャップのためにマシンをつかんだように見えます。

于 2012-06-04T16:25:27.547 に答える
1

2 秒というのは非常に長い時間ですが、このような説明のつかないギャップは通常、アプリのコードまたはスケジューリングの 2 つの理由のいずれかに起因します。

これら 2 つの呼び出しの間に 2 秒分の処理作業を行っている可能性は低いと思われるため、最も可能性の高い答えはスケジューリングです。アプリはタイムスライスを使い果たし、OS は他のタスクをしばらく実行するようにスケジュールしました。

于 2012-06-07T04:49:33.600 に答える