導航:首頁 > 編程語言 > jdkjstatd

jdkjstatd

發布時間:2023-05-24 13:24:30

A. 在新建虛擬機時出現問題

JConsole

JConsole 圖形用戶界面是一種符合 java 管理擴展(JMX)規范的監視工具。JConsole 使用 Java 虛擬機 (Java VM) 的廣泛檢測來提供有關在 Java 平台上運行的應用程序的性能和資源消耗的信息。

使用方法 本地

B. JDK命令介紹

命令jps用於列出java進程,直接運行jps不加任何參數,可以列出Java程序的進程ID以及Main函數等名稱。
參數-q指定jps只輸出進程ID,而不輸出類的短名稱
參數-m用於輸出傳遞給Java進程(主函數)的參數
參數 -l用於輸出主函數的完整路徑
參數 -v可以顯示傳遞給JVM的參數

jstat是一個可以用於觀察Java應用程序運行時信息喊告脊的工具。它的功能非常強大,可以通過它,查看堆信息的詳細使用情況。主要用於監控虛擬機的各種運行狀態信息,如類的裝載、內存、垃圾回收、JIT編譯器等,在沒有GUI的伺服器上,這款工具是首選的一款監控工具。
基本使用語法為:

選項option可以由以下值構成:

-class:顯示ClassLoader的相關信息。
-compiler:顯示JIT編譯的相關信息。
-gc:顯示與GC相關的堆信息。
-gccapacity:顯示各個代的容量及使用情況。
-gccause:顯示垃圾收集相關信息(同-gcutil),同時顯示最後一次或當前正在發生的垃圾收集的誘發原因。
-gcnew:顯示新生代信息。
-gcnewcapacity:顯示新生代大小與使用情況。
-gcold:顯示老年代與永久代的信息。
-gcoldcapacity:顯示老年代的大小。
-gcmetacapacity:顯示元空間的大小。(在java8之前是使用-gcpermcapacity顯示永久代的大小)
-gcutil:顯示垃圾收集信息。
-printcompilation:輸出JIT編譯的方法信息。
以上選項可以輸入 jstat -options 查看。

-t 參數可以在輸出信息前加一個 Timestamp 列,顯示程序的運行時間。

-h 參數可以在周期性數據輸出時,輸出多少行數據後,跟著輸出一個表頭信息。

vmid 參數就是Java進程id。

interval 參數用於指定輸出統計數據的周期,單位為毫秒。

count 用於指定一共輸出多少次數據。

jinfo 可以用來查看正在運行的Java運行程序的擴展參數,甚至支持在運行時修改部分參數。可以用來查看正在運行的 java 應用程序的擴展參數,包括Java System屬性和JVM命令行參數;也可以動態的修改正在運行的 JVM 一些參數。當系統崩潰時,jinfo可以從core文件裡面知道崩潰的Java應用程序的配置信息。

jmap 可以生成Java應用程序的堆快照和對象的統計信息。基本語法為:

option 選項如下:
-mp 生成java堆轉儲快照。格式為: -mp:[live,]format=b,file=,其中live子參數說明是否只mp出存活的對象
-finalizerinfo 顯示在F-Queue中等待友好Finalizer線程執行finalize方法的對象。只在linux/Solaris平台下有效
-heap 顯示java堆詳細信息,如使用哪種收集器、參數配置、分代情況等,在Linux/Solaris平台下有效
-histo 顯示堆中對象統計信息,包含類、實例對象、合集容量
-permstat 以ClassLoader為統計口徑顯示永久代內鄭滲存狀態。只在Linux/Solaris平台下有效
-F 當虛擬機進程對-mp選項沒有相應時。可使用這個選項強制生成mp快照。只在Linux/Solaris平台下有效

使用 jhat 工具可以用於分析Java應用程序的堆快照內容。jhat 在分析完成後,使用HTTP伺服器展示其分析結果。在瀏覽器中訪問 http://localhost:7000/

jstack 可用於導出Java應用程序的線程堆棧。語法為:

-l選項用於列印鎖的附加信息。
jstack 工具會在控制台輸出程序中所有的鎖信息,可以使用重定向將輸出保存到文件。
通過 jstack 工具不僅可以得到線程堆棧,它還能自動進行死鎖檢查,輸出找到的死鎖信息。

之前所述的工具中,只涉及到監控本機的Java應用程序。而在這些工具中,一些監控工具也支持對遠程計算機的監控(如:jps、jstat)。為了啟用遠程監控,則需要配合使用jstatd工具。
命令jstatd是一個RMI服務端程序,它的作用相當於代理伺服器,建立本地計算機與遠程監控工具的通信。jstatd伺服器將本機的Java應用程序信息傳遞到遠程計算機。

JConsole(Java Monitoring and ManagementConsole)工具時JDK自帶的圖形化性能監控工具。通過JConsole工具,可以查看Java應用程序的運行概況,監控堆信息、永久區使用情況、類載入情況等。

C. jdk怎麼用啊

D:Javajdk1.5.0in 目錄下都是jdk的工具,使用java編程主要用到的是javac.exe、java.exe這兩個命令行工具。具體使用步驟如下:

1、配置java系統環境變數:新建文本文件,復制下面代碼,然後另存為jdk.bat文件。 @echo setx /M JAVA_HOME "D:Javajdk1.5.0" setx /M CLASSPATH ".;%%JAVA_HOME%%lib;%%JAVA_HOME%%lib ools.jar;" setx /M PATH "%PATH%;%%JAVA_HOME%%in;%%JAVA_HOME%%jrein;" pause

D. centos7安裝 java 顯示java -version成功 但javac命令找不到

  1. java你是通過什麼方式安裝的
  2. rpm包?tar包解壓?
  3. 確定你是否安裝的jdk
  4. 先找到javac的命令所在位置
  5. 配置環境變數後需要重啟或者source
  6. 希望可以幫助你,請採納

E. linux上如何安裝jstatd服務

此命令是一個RMI Server應用程序,提供了對JVM的創建和結束監視,也為遠程監視工具提供了一個可以attach的介面

options
-nr 當一個存在的RMI Registry沒有找到時,不嘗試創建一個內部的RMI Registry
-p port 埠號,默認為1099
-n rminame 默認為JStatRemoteHost;如果多個jstatd服務開始在同一台主機上,rminame唯一確定一個jstatd服務
-J jvm選項

jstatd
會報如下錯誤:
Could not create remote object access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.System.setProperty(System.java:727) at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)

這是因為沒有給jstatd指定安全策略

創建安全策略文件,並命名為jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

再次啟動
C:\Program Files\Java\jdk1.6.0_16\bin>jstatd -J-Djava.security.policy=jstatd.all.policy

利用jps查看正在運行的java命令
jps
C:\Documents and Settings\lulu>jps
4892 Bootstrap
1296 Jstatd
4484 Jps
3332 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar

此時就可以使用jvisualvm.exe以遠程的方式監控JVM相關信息了。
更多例子
(1)使用內部RMI Registry
jstatd -J-Djava.security.policy=all.policy (默認埠為1099)
(2)使用外部RMI Registry
a)使用默認值
rmiregistry&
jstatd -J-Djava.security.policy=all.policy
b)使用2020埠
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020
c)使用2020埠,使用rminame
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName
(3)RMI Registry已經啟動,不創建內部RMI Registry
jstatd -J-Djava.security.policy=all.policy -nr
(4)RMI日誌能力
jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true

F. 如何使用JDK自帶jvisualvm監控工具

對於使用命令行遠程監控jvm 太麻煩 。 在jdk1.6 中 Oracle 提供了一個新的可視化的。 JVM 監控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目錄下。
「本地 」下顯示的是在 localhost 運行的 Java 程序的資源佔用情況,如果本地有 Java 程序在運行的話啟動 Java VisualVM 即可看到相應的程序名,點擊程序名打開相應的資源監控菜單,以圖形的形式列出程序所佔用的 CPU 、 Heap 、 PermGen 、類、線程的 統計信息。
「遠程」 項下列出的遠程主機上的 Java 程序的資源佔用情況,但需要在遠程主機上運行 jstatd 守護程序

G. Java有沒有這樣的命令行參數工具

Java 命令行工具總結
1、命令
C/Documents and Settings/Zianed>ls 『%JAVA_HOME%』/bin
HtmlConverter.exe javap.exe jstatd.exe rmid.exe
appletviewer.exe javaw.exe jvisualvm.exe rmiregistry.exe
apt.exe javaws.exe keytool.exe schemagen.exe
beanreg.dll jconsole.exe kinit.exe serialver.exe
extcheck.exe jdb.exe klist.exe servertool.exe
idlj.exe jhat.exe ktab.exe tnameserv.exe
jar.exe jinfo.exe msvcr71.dll unpack200.exe
jarsigner.exe jli.dll native2ascii.exe wsgen.exe
java-rmi.exe jmap.exe orbd.exe wsimport.exe
java.exe jps.exe pack200.exe xjc.exe
javac.exe jrunscript.exe packager.exe
javadoc.exe jstack.exe policytool.exe
javah.exe jstat.exe rmic.exe
需要獲得其中的幫助使用XX -help即可
Basic Tools
These tools are the foundation of the JDK. They are the tools you use to create and build applications.
Tool Name Brief Description Links to Reference Pages
javac The compiler for the Java programming language. [Solaris and Linux ] [Windows ]
java The launcher for Java applications. In this release, a single launcher is used both for development and deployment.
The old deployment launcher, jre , is no longer provided. [Solaris and Linux ] [Windows ]
javadoc API documentation generator.
See Javadoc Tool page for doclet and taglet APIs. [Solaris and Linux ] [Windows ]
apt Annotation processing tool.
See Annotation Processing Tool for program annotation processing. [Solaris, Linux, and Windows ]
appletviewer Run and debug applets without a web browser. [Solaris and Linux ] [Windows ]
jar Create and manage Java Archive (JAR) files.
See Java Archive Files page for the JAR specification. [Solaris and Linux ] [Windows ]
jdb The Java Debugger.
See JPDA for the debugger architecture specifications. [Solaris and Linux ] [Windows ]
javah C header and stub generator. Used to write native methods. [Solaris and Linux ] [Windows ]
javap Class file disassembler [Solaris and Linux ] [Windows ]
extcheck Utility to detect Jar conflicts. [Solaris and Linux ] [Windows ]
--------------------------------------------------------------------------------
Monitoring and Management Tools
You can use the following tools to monitor JVM performance and resource consumption. The tools described in this section are unsupported and experimental , and should be used with that in mind. They may not be available in future JDK versions.

Platform support:

•jconsole: all platforms.
•jps, jstat, and jstatd: all platforms except Windows 98 and Windows ME.
For more information, see Monitoring and Management for the Java Platform .

Tool Name Brief Description
jconsole Experimental : Java Monitoring and Management Console – JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs.
jps Experimental : JVM Process Status Tool – Lists instrumented HotSpot Java virtual machines on a target system.
jstat Experimental : JVM Statistics Monitoring Tool – Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options.
jstatd Experimental : JVM jstat Daemon – Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides a interface to allow remote monitoring tools to attach to Java virtual machines running on the local system.

--------------------------------------------------------------------------------

Troubleshooting Tools
The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.

These tools are not currently available on Windows platforms .

Tool Name Brief Description
jinfo Experimental – Configuration Info for Java – Prints configuration information for for a given process or core file or a remote debug server.
jmap Experimental – Memory Map for Java – Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server.
jsadebugd Experimental – Serviceability Agent Debug Daemon for Java – Attaches to a process or core file and acts as a debug server.
jstack Experimental – Stack Trace for Java – Prints a stack trace of threads for a given process or core file or remote debug server.

2 、命令簡單介紹

2.1 HtmlConverter

2.2 appletviewer

查看Applet程序的運行結果。

2.3 apt

2.4 extcheck

2.5 idlj

2.6 jar

將一個文件打成jar包,以提供給給程序,方便使用。

bash-3.2$ jar -help

非法選項:h

用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files …

選項包括:

-c 創建新的歸檔文件

-t 列出歸檔目錄

-x 解壓縮已歸檔的指定(或所有)文件

-u 更新現有的歸檔文件

-v 在標准輸出中生成詳細輸出

-f 指定歸檔文件名

-m 包含指定清單文件中的清單信息

-e 為捆綁到可執行 jar 文件的獨立應用程序

指定應用程序入口點

-0 僅存儲;不使用任何 ZIP 壓縮

-M 不創建條目的清單文件

-i 為指定的 jar 文件生成索引信息

-C 更改為指定的目錄並包含其中的文件

如果有任何目錄文件,則對其進行遞歸處理。

清單文件名、歸檔文件名和入口點名的指定順序

與 「m」、」f」 和 「e」 標志的指定順序相同。

示例 1:將兩個類文件歸檔到一個名為 classes.jar 的歸檔文件中:

jar cvf classes.jar Foo.class Bar.class

示例 2:使用現有的清單文件 「mymanifest」 並

將 foo/ 目錄中的所有文件歸檔到 「classes.jar」 中:

jar cvfm classes.jar mymanifest -C foo/ .

bash-3.2$ jar -cvf zianed.jar *.class

標明清單(manifest)

增加:A.class(讀入= 112) (寫出= 105)(壓縮了 6%)

增加:B.class(讀入= 246) (寫出= 184)(壓縮了 25%)

bash-3.2$

2.7 jarsigner

2.8 java-rmi

2.9 java

執行java語言,期中包括了一部分的java執行可以使用和引入的參數;也包括了部分執行時的信息收集信息。

bash-3.2$ java -version

java version 「1.6.0_10″

Java(TM) SE Runtime Environment (build 1.6.0_10-b33)

Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode)

2.10 javac

java編譯器,將java源文件編譯成可以供jvm執行的二進制class文件。

bash-3.2$ javac -version

javac 1.6.0_10

2.11 javadoc

根據源文件生成java的doc文檔API。

2.12 javah

bash-3.2$ cd zianed

bash-3.2$ ls B.*

B.class B.java

bash-3.2$ cd ..

bash-3.2$ javah zianed.B

bash-3.2$ ls

zianed zianed_B.h

bash-3.2$

2.13 javap

將java位元組碼文件進行反編譯的工具。

bash-3.2$ javap zianed.B

Compiled from 「B.java」

public class zianed.B extends java.lang.Object implements zianed.A{

public zianed.B();

public void print();

public native java.lang.String getInfo();

}

bash-3.2$

2.14 javaw

The javaw command is identical to java , except that with javaw there is no associated console window. Use javaw when you don』t want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails for some reason.

2.15 javaws:

2.16 jconsole

Java Monitoring and Management Console

啟動java進程監控和管理控制台。監控和分析jvm的運行情況。

用法: jconsole [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ...]

-interval 將更新間隔時間設置為 n 秒(默認值為 4 秒)

-notile 最初不平鋪顯示窗口(對於兩個或更多連接)

-pluginpath 指定 jconsole 用於查找插件的路徑

-version 輸出程序版本

connection = pid || host:port || JMX URL (service:jmx:<protocol>://…)

pid 目標進程的進程 ID

host 遠程主機名或 IP 地址

port 用於遠程連接的埠號

-J 對正在運行 jconsole 的 Java 虛擬機指定輸入參數

Options are mutually exclusive. Option, if used, should follow immediately after the command name.

jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server.

bash-3.2$ jstack -help

The jstatd tool is an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines (JVMs) and provides a interface to allow remote monitoring tools to attach to JVMs running on the local host.

bash-3.2$ jstatd –help

Virtual Machine jstat Daemon

usage: jstatd [-nr] [-p port] [-n rminame]

2.26 jvisualvm

啟動VisualVM查看VM狀態。

bash-3.2$ jvisualvm &

[1] 3660

bash-3.2$

2.27 keytool

2.28 kinit

2.29 klist

2.30 ktab

2.31 native2ascii

對文件轉換編碼。

用法:native2ascii [-reverse] [-encoding 編碼] [輸入文件 [輸出文件]]

2.32 orbd

2.33 pack200

2.34 packager

2.35 polocytool

2.36 rmic

2.37 rmid

2.38 rmiregisty

2.39 schemagen

2.40 serialver

2.41 servertool

2.42 tnameserv

2.43 unpack200

2.44 wsgen

2.45 wsimport

2.46 xjc
3、jvm的部分參數
也就是在啟動Java虛擬機、或者執行JAVA時應該添加的程序。
Windows平台下在以下路徑下存在參數說明。
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs rece use of OS signals by Java/VM (see documentation)
-Xcheckjni perform additional checks for JNI functions
-Xshareoff do not attempt to use shared class data
-Xshareauto use shared class data if possible (default)
-Xshareon require using shared class data, otherwise fail.
The -X options are non-standard and subject to change without notice.
5 、最常用的工具
javac Java源代碼編譯工具

H. 嘗試連接到gc配置不可用

連接到gc配置搏或不可用解決步驟如下。
1、首先修改遠程伺服器上java設置。
2、找到jdk下的/jre/lib/security/java.policy文件,打開此文件,在文件末尾的括弧前添加基稿伍permissionjava.security.AllPermission。後保存。
3、在jdk/bin目錄下運行命令窗口輸入:jstatd-J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=192.168.2.85-p2030,接著運行即可。
4、本地啟動VisualVM,在配置JMX時已經添加過伺服器節點,如果敬並配置正確,通常gc會自動檢測到jstatd連接並添加節點。

I. jvisualvm的使用

1.jvisualvm在安裝完jdk的時候就已經存在了,放在jdk安裝目錄bin下面

2.jvisualvm的使用

/usr/local/java/bin/jvisualvm & 

3.監控本地和監控遠程

1)監控本地:

標簽介紹:

概述:顯示的是該伺服器的啟動和系統參數,可以通過與伺服器的實際參數進行對比查看是否有內存溢出

監控:顯示的是當前系統的CPU、內存、類和線程的相關資源的使用情況。其中"堆mp"可以查看堆的詳細狀態,包括堆的概況,裡面所有的類,還能點進具體的一個類查看這個類的狀態。

線程:能夠顯示線程的名稱和運行的狀態,在調試多線程時必不可少,而且可以點進一個線程查看這個線程的詳細運行情況

抽樣器:(可針對cpu和內存進行抽樣監控)

2).遠程tomcat監控

1)修改修改 /{tomcat path}/bin/catalina.sh, 找到第一個沒注釋的JAVA_OPTS,在前面添加

2)將8099埠開放---->添加防火牆

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8099 -j ACCEPT

重啟防火牆---->/etc/init.d/iptables restart 

3)jvisualvm添加遠程tomcat監控

3)遠程java應用程序(非tomcat):

方法1:(在啟動的時候添加啟動參數)

nohup java -Dcom.sun.management.jmxremote 

-Dcom.sun.management.jmxremote.port=9005 

-Dcom.sun.management.jmxremote.authenticate=false 

-Dcom.sun.management.jmxremote.ssl=false 

-Djava.net.preferIPv4Stack=true 

-Djava.rmi.server.hostname=192.168.9.174  -jar monitor_tuning-0.0.1-SNAPSHOT.jar &

注意埠號9005要開放,添加防火牆 !

方法2:使用jstatd

1)在$JAVA_HOME/bin目錄下新建一個文件jstatd.all.policy(名稱隨意),內容如下:

grant codebase "file:/usr/local/java/lib/tools.jar" { 

   permission java.security.AllPermission; 

};

2)然後執行

 jstatd  -J-Djava.security.policy=jstatd.all.policy  -J-Djava.rmi.server.hostname=192.168.9.174  -p 1099  &

在jvisualvm裡面添加遠程主機 192.168.9.174,然後右鍵添加jstatd連接,埠默認。jvisualvm即可掃描出所有正在運行的JVM,點擊即可監控。

注意:此處需要添加防火牆(此處好多文章都沒有說關於防火牆的問題)

兩種方法比較:

1)jmx是jvm自身提供的一個標準的jmx管理功能,client支持度非常好,jvm監控工具基本上都會支持這種連接方式。而且只要配置幾個簡單的選項就可以使用了,不需要單獨啟動一個第三方的只用來監控連接的應用程序

2)jstatd是jdk提供的一個單獨的工具,一個主機只需要運行一個jstatd就可以監控主機上所有的java application,而因為jmx是集成在jvm中,如果主機上有多個java應用程序需要監控,需要每個java應用程序配置相應的jmx選項,而且遠程服務埠不能相同,client監控時也需要與每個java應用程序建立單獨的連接

3)java應用程序啟動時如果沒有配置相應的jmx選項,則在運行周期內都無法遠程監控應用程序,這可能會喪失定位問題的機會。而jstatd需要監控時,可以隨時運行並進行監控

4) 在jvisualvm中,只有通過jstatd連接才能使用visualGC插件功能

5)jstatd server的埠是隨機選擇的,在有些情況下可能無法使用。比如我司的辦公區域與生產區域之間網路設置了防火牆,只允許某個范圍的埠通過,這是公司級的,某個團隊無法修改防火牆策略。同時辦公區域也不能直接ssh訪問生產區域伺服器,必須經過一個relay,也不能使用jstatd over ssh的方式。個人覺得jstatd不能在啟動時顯示指定服務的埠是它的一個槽點

4.插件安裝:

參考文章:https://www.cnblogs.com/looyee/articles/11065093.html

J. jvisualvm遠程監控無法連接是什麼原因

jvisualvm是Jdk自帶的,具體點,據說是jdk1.6-07後加到jdk中的。本地監控很簡單,在JAVA_HOME/bin中打開jvisualvm即可,所有本機的java程序會自動列出來。我們來說下遠程監控的問題。
當然網上有很多相關資料,我就把我實踐的結果列出來吧。
環境, 本地: WIN-XP sp3, jdk1.6.0_17 遠端:CentOS5.1, jdk1.6.0_3

具體步驟如下,
1. 啟動遠端jstatd.
1.1 配置[b]java[/b]安全訪問,將如下的代碼存為文件 jstatd.all.policy (名字隨便起),但要放到JAVA_HOME/bin中,其內容如下,
grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };
1.2 進入到JAVA_HOME/bin中,執行./jstatd -J-Djava.security.policy=jstatd.all.policy
註:這時候能啟動正常,但是後面本地用 jvisualvm的時候拋異常,
Java代碼
<span style="font-size: small;">java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
Caused: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy7.activeVms(Unknown Source)
at sun.jvmstat.perfdata.monitor.protocol.rmi.RemoteVmManager.activeVms(RemoteVmManager.java:82)
Caused: sun.jvmstat.monitor.MonitorException: Error communicating with remote host: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.jvmstat.perfdata.monitor.protocol.rmi.RemoteVmManager.activeVms(RemoteVmManager.java:85)
at sun.jvmstat.perfdata.monitor.protocol.rmi.MonitoredHostProvider.activeVms(MonitoredHostProvider.java:217)
at com.sun.tools.visualvm.jvmstat.application.JvmstatApplicationProvider.processNewHost(JvmstatApplicationProvider.java:126)
at com.sun.tools.visualvm.jvmstat.application.JvmstatApplicationProvider.access$000(JvmstatApplicationProvider.java:69)
at com.sun.tools.visualvm.jvmstat.application.JvmstatApplicationProvider$5$1.run(JvmstatApplicationProvider.java:276)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
==>
</span>

據查,有兩種方法解決,一種是把 /etc/hosts中的ip改成實際的IP,然後重啟網路,但我用此法沒有解決問題。另一種是,在jstatd後加hostname的參數,如下,
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.23
我用第二種方法解決了此問題。

2.打開本地的jvisualvm, 右鍵Remort,選擇 "Add Remort Host...",在彈出框中輸入你的遠端IP,比如192.168.0.23. 連接成功後如圖,

其中CPU一項顯示"NOT supported for this JVM",不知何故,難道是遠端的jdk版本需要升級到jdk1.6.0_17? 還沒有試。 另外「Perform GC」跟"Heap Dump"都亮,也不知何故。

順便解釋下Heap跟PermGen的區別, 一般而言,PerGen放的是類的定義;而Heap裡面放的是類的實例;所以一般程序穩定運行後,PermGen基本保持不變,要變也只會增加,因為GC只會掃描heap中的實例;而Heap變化較大,OutOfMemory一般也是Heap不夠了。

閱讀全文

與jdkjstatd相關的資料

熱點內容
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426
如何查找國外論文的編程代碼 瀏覽:366
暗金顏色代碼 瀏覽:789

友情鏈接