私は、メモリ集中型の長期実行タスクのバーストを定期的に処理するGoogle App Engineアプリを持っています。スレッドセーフなモードでPython2.7の実行時にタスクキューAPIを使用しているので、各インスタンスが同時に複数のタスクを処理しています。その結果、私は頻繁にこれらのエラーを取得:App Engineインスタンスごとのタスクリクエストの数を制限する
は、合計8の要求にサービスを提供した後、137.496メガバイトと超過ソフトのプライベートメモリの上限
はこの要求を処理した後に、この要求を取り扱うプロセスがあまりにも使用されていることがわかった
多くの記憶と終了しました。これにより、アプリケーションへの次の要求に新しいプロセスが使用される可能性があります。このメッセージが頻繁に表示される場合は、アプリケーションでメモリリークが発生する可能性があります。
私が知る限り、各インスタンスはそれぞれ8つのタスクを実行しており、最終的にはソフトメモリの制限にぶつかります。タスクは非常に少量のメモリを使用して開始しますが、最終的には約15-20MBに増加します。
インスタンスに5つ以上のリクエストを割り当てるようにApp Engineに指示する方法はありますか。または、タスクが10分間に20MBのメモリを使用し、それに応じて調整されることが期待されていることをApp Engineに伝えますか?
タスクを処理するインスタンスの数を自動的に拡大する必要があるので、バックエンドAPIを使用しないことをお勧めしますが、これが唯一の方法であれば、その構造を知りたいと思います。