2016-05-06 6 views
1

私はUbuntu 16.04サーバーでJavaアプリケーションを実行しています。詳細な調査の後、私はJVMのヒープサイズがほぼ一定であることを発見しました。いずれにせよ、メモリの増加はありません。安定したJVMがシステムメモリを増やす

しかし、私がhtopを使ってサーバを見ると、サーバのメモリ消費は驚くほど速くなります。私は正確にこれを引き起こしているのかわからないが、100%はJavaプロセスから発生している。

私はhprofファイルを見ましたが、私は本当に何を探しているのかわかりません。

私は責任を負う可能性のある2つのライブラリを実行していますが、私はそれらに親しんでいません。

  • OrientDB(plocal)
  • Hazelcast

イムないこれらのいずれか/両方がJVMの外部メモリの増加を引き起こす場合を確認してください。

問題を特定するのに役立つ最良の計画に関するアドバイスは素晴らしいものです。

+0

Javaプロセス自体のRSS自体は増加していますか? – the8472

+0

@ the8472申し訳ありません、 'java process RSS'とは何ですか? – tarka

+0

Javaヒープサイズはどのように決定していますか? (メソッドはライブオブジェクトのみを考慮していますか?)どのように「メモリ消費量」を決定していますか? – davmac

答えて

0

コメントのために@ the8472、@ davmac @ qwwdfsadと@ andrey-lomakinのおかげです。私は非常に薄いところで質問に記載された詳細を感謝しますが、私はウサギ全体を導くかもしれない無関係のデータを提供することを避けようとしていました。

それぞれの提案を体系的にテストしたところ、問題はオリエンテーションデータベースに由来することが判明しました。私は、次のうちどれが問題を解決したのか(おそらく両方)を100%と言います。 @ andrey-lomakinの提案に従って、私は2.1.19から2.2-rc1にアップグレードしました。これを行うにあたり、アプリケーションバッチインサートが例外をスローするようになったので、それらをすべて1つの線形クエリに変換しました。競合するとメモリリークが発生しています。

direct IO leakのテスト中に他の人に影響を及ぼす場合の補足として、-Djdk.nio.maxCachedBufferSize=...Java(TM) SE Runtime Environment (build 1.8.0_91-b14)と動作することがわかりました。

+0

どこで-Djdk.nio.maxChaedBu ....を設定できますか? –

関連する問題