4

GAE タスク キュー要求の 1 つがソフト メモリ制限を超えました (以下のログ)。ソフトメモリ制限についての私の理解は、リクエストを完了させ、完了後にインスタンスをシャットダウンするということです。

ただし、ログから、ソフトメモリ制限に達すると実行が停止するようです。メモリ制限メッセージの後にログ コードが表示されず、状態を調べたところ、リクエストが完了しているようには見えません。問題があるかどうかはわかりませんが、このリクエストは遅延ライブラリ TaskQueue 内で実行されています。

では、TaskQueue がソフト プライベート メモリ制限に達した場合、リクエストが完了するまで実行を継続するのか、それともすぐに停止するのか? ロギング コードのみが記録されなくなった可能性はありますか?

ログ:

2012-04-11 23:45:13.203
Exceeded soft private memory limit with 145.848 MB after servicing 3 requests total
W 2012-04-11 23:45:13.203
After handling this request, the process that handled this request was found to be using too much memory and was terminated. This is likely to cause a new process to be used for the next request to your application. If you see this message frequently, you may have a memory leak in your application.

ログのスクリーンショット

4

2 に答える 2

7

ここで何が起こるかというと、最後にハンドラがメモリのステータスをチェックし、制限を超えている場合はエラーをログに記録し、インスタンスをシャットダウンします。
タスクが正常に完了したため (ステータス 200 で終了することがわかります)、再試行されません。

ハンドラの実行中にメモリ ステータスがメモリ制限をはるかに超えると、ハンドラはインスタンスをシャットダウンし、エラー 500 を返します。この場合、タスクは再試行されます。

于 2012-04-12T05:15:51.493 に答える
-1

私の経験から: インスタンスがソフト メモリ ヒットに達した場合でも、リクエストは終了しますが、レスポンス ステータスは 500 になります。

于 2012-04-12T05:09:19.117 に答える