VisualVMにJVM引数を提供するにはどうすればよいですか?


97

JDK 1.6.0_26のVisualVMを使用して、Tomcatで実行されているJava Webアプリケーションのプロファイルを作成していますが、スナップショットを作成するための十分なメモリがなく、NetBeansにより多くのメモリを提供するために-Xmxスイッチを使用する必要があるとVisualVMからしばしば通知されます。問題は、Netbeansの外部でVisualVMを実行しているため、jvisualvm.exeにJVM引数を提供するにはどうすればよいですか?

回答:


139

のメモリ設定を変更できる必要があります %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmsそして、Xmxしているdefault_optionsライン。


2
(私のコピー:) OSX:/System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zackあなたはそれを確認でき-J-Xms-J-Xmx実際には正しいオプション名ですか?-Jこれらがconfファイルで指定されている場合、プレフィックスは必要ですか?
GreenGiant 2013

@GreenGiant私はそれらがそうであるかどうかわからない...私のvisualvm.confのコピーでは、私は-J-Xms24m&を持っている-J-Xmx256mので、それが正しいオプション名であると思います。詳細については、visualvm.confのフォーマット方法をグーグルするかもしれません...
Zack

@Zack my confファイルも同じです。回答に-Jプレフィックスが含まれていないため、確認したいだけです。
GreenGiant 2013

参考までに、Linux(Mint、おそらくUbuntuも)では/usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.confです。
David Moles 2013年

53

または私はこれもうまくいくと思います:

jvisualvm.exe -J-Xmx512m (または必要な量)

ワンタイム設定の.exeコマンドラインの-J、またはデフォルトを変更するための他の回答に記載されている.confファイル


これを機能させることができませんでした。jvisualvm.exe -J-Xms256m -J-Xmx1024mコマンドプロンプトから試してみたところ、プロセスを調べると、引数が適用されていないことがわかりました。
Mike Partridge、2012年

3
私はそれを試したところ、それを追加するようです。私はデフォルトの192メートルと見ているので、また 1024メートルのために別のエントリを。後者が優先されるようです。JDKのバージョンは?
Kevin Welker

1.6.0_26を使用しています。JConsoleを使用してVisualVMプロセスを検査する場合、[VMの概要]タブの[VM引数]セクションにデフォルトと指定した値が表示されますが、VisualVMを使用して検査する場合、[概要]> [JVM引数]ではデフォルトのみが報告されます。
Mike Partridge、2012年

1.6.0_20を使用していますが、Xmxをリストする2行が表示されます。最初はデフォルトで、後者は新しい値です。念のため、上記のコメントからコマンドラインを直接コピーしました。概要出力> JVMが含まれています:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
ケビン・ウェルカー

31

私が始めた

jvisualvm -J-Xms1024m -J-Xmx2048m

そしてそれは働いた。


.confファイルの場所が変更されたのでこれが好きですが、これはまだ機能し、おそらく他のいくつかのJavaプログラムでも機能します。上記のコメントに反して、Macユーザーはこれを見つけるのは難しくありません。世界はGoogleを使用しています。
George Co

以下のコメントで述べたように、jvisualvmの内部でVM引数を見ると、機能していないようですが、機能しています。OOMエラーが発生しなくなりました。
George Co

22

Macでは、このファイルを編集して設定できます。

/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf

visualvm_default_options="-J-client -J-Xms4096m -J-Xmx5120m -J-XX:+IgnoreUnrecognizedVMOptions -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true"

解答に焦点を当ててください。メタ情報を追加したい場合は、コメントで追加してください。
Martijn Pieters

そして、windowsというタグ付いた質問では、Macユーザーにとってあなたの答えを見つけるのは難しいでしょう。とにかくそれを新しい質問にすることを検討してください。
Martijn Pieters

私はこの投稿に投票しませんでした。結論にジャンプしないでください。
Martijn Pieters

なぜこの答えを不必要に編集するのですか?さらに評判を得るために?答えはすでに集中しており、非常に明確でした。ところで、あなたの編集ごとに私はダウン評価しています!
aspdeepak

2
私が作った1本のここでは編集をし、私はそのようにした理由は、それが明らかにしました。タグでWindowsユーザー向けの質問にMacのみの回答を追加したい場合は、問題ありませんが、メタ情報は除外してください。投稿には解決策のみを含め、投票のアドバイスは含めないでください。
Martijn Pieters

0

Mac OSX 10.12以降の場合

https://visualvm.github.io/download.htmldmgからvisualvmをダウンロードし、それをディレクトリに移動した場合。構成ファイルは、次の場所にあります。この構成ファイルでは、Applicationsvisualvm.confApplications/VisualVM.app/Contents/etc/visualvm.conf

visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m

to(eg)

visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.