2016-08-11 6 views
0

私のインスタンスはすべて140mから始まり、平均が200をわずかに下回っています。しかし、私の質問は、新しいインスタンスが起動された直後に使用されているメモリに関するものです。私はインスタンスに何も保存しません。すべての要求はmemcacheとデータストアからのものを取り出しますが、私はシングルトンを使用しません。Appengineのフロントエンドインスタンスはますます多くのRAMを使用していますが、これをどのように減らすことができますか?

私が持っているのは、クラスと、インスタンスと共にデプロイする多くの静的リソースです。私はJSPを広範囲に使用しています(違いがある場合)。

ありがとうございました!

答えて

0

なぜ私のプロジェクトでは、ますます増え続けるラムを取り上げているのか分かりました。私は自分のプロジェクトに多くの静的リソースを持っていて、これらの静的リソースはすべて(おそらく速度のために)フロントエンドインスタンスメモリにロードされるように見えます。静的リソースを主なアプリケーションサーバーから移動することによって、膨大なメモリを解放することができました。

0

私はApp Engineで数年間Javaを使用していたので、ここからメモリに移動します。これは古いかもしれません。

JVMはメモリを解放したくありません。インスタンスが作成され、要求を処理すると、メモリの透かしが上がります。ガベージコレクションは、そのメモリの一部を再利用できるという意味で「解放」する可能性がありますが、プロセスメモリの最高水準点は必ずしも低下しません。その後の要求では、空きチャンクとして利用できない割り当てが必要な場合があります。そのため、メモリ上のウォーターマークが再び上がります。アプリが複数のリクエストを同時に処理するように設定されていない場合、メモリの使用はシグモイド曲線のようになります。複数の要求が同時に処理されている場合は、ウォーターマークがさらに引き上げられます。つまり、予期しないメモリ増加の一般的な原因は、必要以上に多くの行を取得するクエリであり、アプリケーションでフィルタリングが行われているためです。

詳細情報がなくても、特定のケースを診断することは不可能です。

関連する問題