2016-09-02 7 views
0

私の製品は256 MBのRAMを持っています。私はJava 8をJava 8にアップグレードしました。 その後、Java 8のメモリ関連の問題に直面しました。 Java 8の場合、メモリ消費量は時間とともに増加しています。 同じコードで、メモリ消費量はJava 6で安定しています メタスペースに関しては、java8とmetaspaceパラメーターの下にあります。メモリ不足:Java 8のメタスペース

私は組み合わせの下にしようとしたメモリエラーのうち、持っている

1.MaxMetaspaceSize 50M MaxMetaspaceFreeRatio 60M MinMetaspaceFreeRatio 50M

2.MaxMetaspaceSize 30M

3.MaxMetaspaceSize 40M

4.MaxMetaspaceSize 50M

5.MaxMetaspaceSize 80M

しかし、2〜3時間後に、メタスペースのOutOfMemoryエラーが発生。

メタスペースオプションMaxMetaspaceSize、MaxMetaspaceFreeRatio、MinMetaspaceFreeRatioが何であるか説明できますか?

正しいサイズがどのように決定されますか? 生産時のメモリー不足のインスタンスを回避し、メモリー消費を削減するには、これらの値の正しい組み合わせは何ですか?

+1

を参照してください。開発者は、これらのオプションをいじり続ける理由を私は理解していません。デフォルトは*無制限*メタスペースです。だから、どの制限が最善であるかわからない場合は、何の制限も指定しないでください。 – Holger

+0

制限を指定しないと、巨大なネイティブメモリ割り当てが行われる可能性があります。 – Smash

+1

ええ、制限を指定すると、 'OutOfMemoryError'で終わる可能性があります。選択肢はあなたのものです... – Holger

答えて

1

問題は解決しました。 JAXBに既知の問題があることが判明しました。

  • 文字列の代わりに使用される文字列バッファ
  • JAXBContextの不要なインスタンスが削除されました。
  • は、このリンク

  • Are there any memory utlization issue with JAXB?