問題タブ [jvisualvm]
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 - AsyncHttpClientとQuartzJobで問題が発生しているスレッド
これは、 1分ごとに1回ジョブを実行する必要がある単純なQuartzスケジューラです。ジョブ自体は、SonatypeAsyncHttpクライアントを使用してHTTPリクエストを作成します。を使用してjvisualvm
、スレッドがスポーンし、決して閉じないことを検出できました。たとえば、スレッドが待機状態になっている場合などです。これにより、A)Quartzがこの特定のセットアップでどのように機能するかを誤解しているか、B)他の何かが間違っていると私は信じています。おそらくA:)スケジューラー:
仕事:
それほど多くはありません。ライブスレッドのプロファイルを作成すると、2分後に侵入が目立ちます。最初の24、27、30よりも...など。
編集:
makeRequest
メソッドを標準のリクエストと交換したときのように、AsyncHttpClientとQuartzの組み合わせであることを確認できました。
すべてが期待どおりに機能します。
java - TraceClassloading によって表示される、読み込まれたクラスの重複
Tomcat tomcat-6.0.28 開発環境で permgen スペース OOM を追跡するために、TraceClassloading、TraceClassUnloading、および JMX モニタリングを追加しました。サーバーには、ほとんど同じフレームワークとライブラリ (Spring、Hibernate、Axis など) を持つ 3 つの Web アプリケーション (devapp1、2、3) があります。 Web アプリケーションごとに同じクラスが 2 回読み込まれます。
例 (実際のログ エントリは時間の経過とともに散らばっており、明確にするためにクラブ化されています)
ただし、JVisualVM の "Total Loaded" カウントは計算値 (~18700) に近いようで、重複は表示されません。MaxPermSize は 128M に設定されていましたが、サーバーを 1 日稼働させた後、現在は 119M 前後で推移しています。TraceClassLoading と JVisualVM の数が一致しない原因と、使用されている permgen スペースに重複が含まれているかどうかを確認する方法を教えてください。
java - jvisualvmでのプロキシ構成の問題
JDK(1.6.0_15-b03)でjvisualvm.exeを試して、プラグインカタログをリロードしました。
ツール>プラグイン>アップデート>カタログのリロード
でも; どのプロキシ構成を試しても(別のJVM 1.6アップデート23でもテストしようとしました)、機能していないようです。プロキシの設定に関係なく、次のエラーが発生します。
sun.security.validator.ValidatorExceptionが原因で、Java VisualVMプラグインセンターに接続できません:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な認証パスが見つかりません
表示されるエラーウィンドウは次のとおりです[添付の画像を参照してください]
これは既知の問題ですか、それとも認証の問題ですか?自分のマシンにトラストストアを作成したことがありませんが、これは問題になる可能性がありますか?
java - JVisualVMは--openpid引数を使用してプロセスに接続できません
私はwin-serviceとして実行されているアプリケーションを持っています(Apache-Procrunを使用)。そのアプリケーションをJVisualVMで監視したい。--openpid <PID>
皮肉なことに、古いJConsoleがなんとかそのアプリケーションに接続できたので、コマンドライン引数を使用して成功しませんでした。
%TMP%\hsperfdata_username
また、「JVisualVM-トラブルシューティングガイド」で説明されている-Directoryのすべての問題を確認しました。そのすべてが順調です。
JVisualVMでアプリを監視するにはどうすればよいですか?
java - VisualVM のローカル TomEE への接続が非常に遅く、ヒープ ダンプを取得できない
MAC OSX マウンテン ライオンの TomEE 1.5.1 と VisualVM 1.7.0_09 で非常に奇妙な問題に遭遇しました。
TomEE が webapp.Use VisualVM connect ローカル TomEE プロセスをロードした後、長い時間がかかり、接続後に gc ボタンが無効になり、ヒープ ダンプを取得できません。VisualVM のログにエラーが表示されます。
tmp フォルダーに作成されて.java_pid<pid>
いないファイル。
しかし、VisualVM を使用して TomEE を起動した後、Web アプリケーションがロードされる前に.java_pid<pid>
接続すると、ファイルが作成され、VisualVM はすぐにそれに接続し、ヒープ ダンプが機能します。
もう 1 つの回避策は、catalina.sh を変更して tools.jar を ClassPath に追加し、openejb javaagent を削除してから、TomEE が完全に起動してから接続することです。
ubuntuマシンでは再現できません。
java - Jvisualvm を使用してメモリ リークを検出する
私の Java jar は、大規模なプログラムが使用する多くの 1 つにすぎません。自分のコードがメモリ リークの原因なのか、それとも自分のコード以外に問題があるのかを判断しようとしています。私は jvisualvm を使用しており、すべてのクラスを特定しましたが、疑わしいものはありません。サンプラーを見ると、byte[]、char[]、および int[] がサイズと作成されたインスタンスの点で最大のユーザーのように見えます。問題は、彼らが誰のものであるかを判断できないことです。プログラムにさまざまな byte[] があることは知っていますが、32,000 ほどのインスタンスがあるため、それらを 1 つずつ見てソースを特定するのは困難です。特定の jar ファイルまたは領域に由来するアイテムのみを表示できるように、データをフィルター処理する方法はありますか? ありがとう。
visualvm - --openjmx 使用時の JMX 接続の命名
Java Visual VM コマンド ラインを使用して、リモート JMX 接続を開いています。私はこのように使用します:
これは完全に正常に機能します。しかし、ビューの接続名は として表示されhostname:port
ます。この接続に論理名を渡す方法はありますか? ビューから接続の名前を変更できますが、再度開いたときに固執しません。同じホスト名から約 10 の接続があるため、個々の接続を論理的に分離したいと考えました。
何か案は?ユーザー構成に名前を付けるだけでも機能します。
java - JVisualvm:アプリケーションの終了後にヒープダンプを取得するにはどうすればよいですか?
私はそれについて検索しましたが、アプリケーションが終了した後にヒープダンプを取得する方法が見つかりませんでした。
Eclipseから、Eclipseプラグイン開発を使用して新しいプロジェクトを作成するプロセスをトリガーしています。コードレベルでは、新しいプロジェクトを作成するための2つのアプローチがあります。両方のアプローチを比較したいと思います。
JVsualVmを使用して、新しいプロジェクト生成を作成する過程で生成されるデータを分析しました。
プロセスが実行で終了するので、実行中のアプリケーションのヒープダンプを取得します。
しかし、問題は、実行中のプロセスが停止した後、JvisulaVMのアプリケーションビューから削除され、ヒープダンプを取得できないことです。
そのため、実行中のアプリケーションのタブを開いたまま、アプリケーションがアプリケーションビューツリーから削除されているため、停止したアプリケーションのヒープダンプをJVisualVmから取得する方法はありますか。
eclipse - JavaVisualVMでEclipseを実行する方法
私は自分のプロジェクトに固有のプラグインをいくつか開発しましたが、長い間使用すると日食が遅くなるため、多少の漏れがあると思います。そのため、プロファイルを作成します。Eclipseから(プラグイン開発モードで)Eclipseを実行してJVVMに接続できますが、長時間の「通常の」開発の後に問題(遅いEclipse)が発生するため、「通常の」Eclipseを開始してVisualVMに接続したいと思います。問題は、EclipseがVisualVMに表示され、プロファイルを作成できないことです(ロードされたクラス、ヒープ、スレッドの数のみが表示されます)。
私のJAVA_HOMEはJDKに設定されており、同じJDKを-vmパラメーターの下でeclipse.iniに配置し、同じJDKからVisualVMを起動しています。
誰かが私が何をすべきか知っていますか?
java - コマンドラインから実行中の JVM のヒープ使用量を確認する方法は?
コマンドラインから実行中の JVM のヒープ使用量を確認できますか? Xmx で割り当てられた最大量ではなく、実際の使用量を意味します。
ウィンドウ環境にアクセスできないため、コマンドラインにする必要があり、値に基づいてスクリプトが必要です。アプリケーションはJettyアプリケーションサーバーで実行されています