2

現在、大量のメモリを必要とするプロジェクトに取り組んでいますが、Mule 3.4.0 で 4 GB を超える RAM (RHEL 6.2 で実行) を利用することができません。Java HotSpot 64 ビット サーバー JVM 1.7.0_45-b18 とコミュニティ バージョンの Mule を使用しています。

私は wrapper.conf ファイルを編集しており、多くの設定を試みましたが役に立ちませんでした。

Mule JIRA: https://www.mulesoft.org/jira/browse/MULE-7018にリストされているバグがあり、3.4.0 に対してクローズされていますが、不完全です。

私の最近の試みは、明示的に8GBのヒープスペースをすぐに占有するように強制することでした.次は最新の試みです:

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=8192

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=8192

ラッパーに関するこの古い投稿に従って、パラメーターinitmemoryとパラメーターをゼロに設定しようとしました: http://java-service-wrapper.996253.n3.nabble.com/4096MB-heap-limit-td1483.html - ただし、これにより、mule が適切に起動しなくなります。maxmemory

また、ラッパーを介して追加の JVM パラメータを明示的に渡そうとしました。

wrapper.java.additional.6=-Xmx8192
wrapper.java.additional.7=-Xms8192

これを行うと、両方のメモリ設定が JVM に送信されていることがわかります (つまり-Xmx8192 -Xms8192、プロセス行の最初に が続きます-Xms4096m -Xmx4096m)。ただし、私の top コマンドでは、JVM プロセスが使用する常駐メモリは 4.2GB しかありません。一番上の RES 列は、JVM メモリ使用量を決定する 100% 決定的な方法ではないことを理解していますが、箱から出して 8 GB を割り当てようとすると、間違いなく 4 GB を超えるはずだという印象を受けています。マシンには 60 GB の物理メモリがあります。

Mule 3.4.0 で 4GB を超えるヒープ領域を取得する方法を発見した人はいますか?

4

3 に答える 3

6

アントンの答えは問題なく機能すると思いますが、Java Service Wrapper のライセンスがいつ GPL に変更されたのかを明確に把握できず、その変更が私のユース ケースに悪影響を与える危険を冒したくありませんでした。

Mule 3.4.0 に含まれる Java Service Wrapper の現在のバージョンを使用してこれを機能させる方法を見つけたので、JSW の GPL への変更による追加のライセンスの影響はありません。

wrapper.conf を変更して、最小および最大メモリ設定を明示的に 0 に設定する場合:

wrapper.java.initmemory=0
wrapper.java.maxmemory=0

次に、wrapper.conf で、追加のプロパティを介してメモリ パラメータを直接渡すことができます。

wrapper.java.additional.6=-Xmx8192m
wrapper.java.additional.7=-Xms4096m

initmemory と maxmemory を明示的にゼロに設定すると、ラッパーは最初に独自のメモリ パラメータを JVM に渡さなくなり、独自のメモリ パラメータを指定できるようになります。これは maxPermGen では機能しないことに注意してください。何らかの理由で、JSW はまだ独自の値を指定しています。

于 2014-03-13T17:16:57.273 に答える