全て、
時間の経過とともにますます多くのメモリを消費し始めるJavaメモリプロセスがあります。ヒープスペースの使用量に上限を設けるために、-Xmxオプションを512Mに設定しました。ある期間にわたってゆっくりとプロセスメモリ使用量が2GBに達しました。
MATやYOURKITなどのさまざまなツールを使用して、メモリリークの可能性についてコードを分析しましたが、Javaコードでそのようなリークの可能性は見つかりませんでした。このコードは、リークのないように見えるOneNative関数も使用しています。
次の質問があります。
- Javaプロセスが使用できる合計メモリに上限を設けることは可能ですか?
- ヒープ以外のJVMの他のメモリ使用量は何ですか?
- LinuxはWindowsの「ワーキングセット」メモリモデルで動作しますか?プロセスがバックグラウンドに置かれると、そのメモリが解放されます。
- 512Mで-Xmxオプションを使用した後でも、ヒープ使用量が増加した場合、JVMは「メモリ不足」をスローしないはずです。これにより、ヒープスペース以外の何かによってメモリがリークされているのではないかと思われます。メモリダンプから、ヒープメモリが増加していないようです。
答えてくれてありがとう。