問題タブ [metaspace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ホットスポット JVM の Java プロセスでネイティブ ヒープ メモリ サイズを計算する方法
私の理解によると、ネイティブ ヒープは、Java プロセスに最大ヒープ サイズを割り当てた後に残ったメモリです。
32 ビット Java プロセスの場合、このプロセスに割り当てることができる最大仮想メモリは 4GB です。この合計 4GB のうち、最大ヒープに 2GB を設定し、OS によって 1GB が使用されているとします。では、残りの 1GB のメモリをネイティブ ヒープと呼べるでしょうか。
同様に、64 ビット Java プロセスの場合、プロセスに割り当てることができる最大メモリは 4GB を超える可能性があります。たとえば、システムに 16 GB の RAM があるとします。仮想アドレス空間の範囲では 16 GB を超えるメモリが許可されないため、システムの各プロセスに割り当てることができる最大仮想メモリは 16 GB になります。それは正しいですか?
つまり、64 ビット Java プロセスのネイティブ ヒープは (16- 2(-Xmx) -1(OS))、つまり 15GB になりますか?
ネイティブ ヒープの計算に関する私の理解は正しいですか?
私の理解が正しければ、ネイティブ メモリから割り当てられるメタスペースの最大使用可能メモリが合計使用可能システム メモリであると言う理由です。各プロセスが取得する最大仮想メモリは、システムで可能な最大仮想アドレス可能範囲であり、このメモリの一部のうち、ヒープと OS によって占有されます。
プロセスに割り当てられた合計メモリをヒープ メモリとして設定した場合、このプロセスで使用できるネイティブ ヒープがないため、outOfMemoryError:Metaspaceはスローされませんか?
私の理解を正すのを手伝ってください。ありがとう。
java - gc ログ ファイルのメタスペース サイズが MaxMetaspaceSize パラメータより大きい理由
Java 8 で Java アプリケーションを実行していますが、gc ログ ファイルに奇妙な動作があることに気付きました。
まず、メタデータ GC のしきい値が原因で、多くのフル GC がわずかな遅延でトリガーされますが、メタデータのサイズがまだ小さいため、このフル GC がトリガーされる理由がログに示されていません。また、私が接続した最後のフル GC では、Metaspace: 799223K->799223K(1769472K)が表示されますが、 1769472Kはどこから来ましたか?設定されている MaxMetaspaceSize よりも大きいですか?
java - Tomcat 8 メタスペースの OutOfMemory の問題
私はjdk 8でTomcat 8を使用しています。メタスペースは1GBに設定されていますが、これで十分だと感じています.OutOfMemoryError例外が発生しています。クラス (SSLEngineImpl.java:1796) をチェックして原因を突き止めようとしましたが、エラーの行がクラスのロードを参照していないようです。誰でもこれについて助けてもらえますか?