jmap
jdk自帶命令。jmap是一個多功能的命令,查看JVM內存使用情況。它可以生成 java 程序的 dump 文件, 也可以查看堆內對象示例的統計信息、查看 ClassLoader 的信息以及 finalizer 隊列。
jmap -dump:live,format=b,file=myjmapfile.txt 19570
jstack
jdk自帶命令。查看運行java程序的java stack和native stack的信息。
jstack pid
jstat
jdk自帶命令。可以觀察到classloader,compiler,gc相關信息。可以時時監控資源和性能 。
MAT
第三方堆棧文件分析工具。下載地址:https://www.eclipse.org/mat/
jps
jdk自帶命令。查看JVM中運行的進程狀態信息。
jps [options] [hostid]
jhat
jdk內置的工具之一。主要是用來分析java堆的命令。,可以將堆中的對象以html的形式顯示出來,包括對象的數量,大小等等,並支持對象查詢語言。使用jmap等方法生成java的堆文件後,使用其進行分析。
jinfo
輸出jvm各項參數信息,包括默認參數
Jinfo [option] pid
jstatd
虛擬機的jstat守護進程,主要用於監控JVM的創建與終止,並提供一個接口允許遠程監控工具依附到在本地主機上運行的JVM。 jstatd工具是一個RMI服務器應用程序,主要用於監控HotSpot Java 虛擬機的創建與終止,並提供一個接口以允許遠程監控工具附加到本地主機上運行的JVM上。jstatd位於 $JAVA_HOME/bin目錄下 jstatd服務器需要在本地主機上存在一個RMI註冊表。
jdb
jdk自帶工具。 JDB是 The Java Debugger 的簡稱,它可以在命令行下調試Java程序。在JDK自己的bin目錄下。
hprof
JDK自帶一個簡單的性能分析工具。常被用於內存使用情況分析。它是一個動態鏈接庫文件,監控CPU的1使用率、內存堆棧分配情況等。使用命令行格式爲:
java -Xrunhprof ToBeProfiledClass
有兩種分析方法:內存分配歷史的跟蹤記錄(dump)和將佔用內存的對象進行排序(sites)。
命令行如下:
java -Xrunhprof:heap=all|dump|sites ToBeProfiledClass
Java VisualVM(jvisualvm)
即jvisualvm,Netbeans的profile子項目,已在JDK6.0 update 7 中自帶,能夠監控線程,內存情況,查看方法的CPU時間和內存中的對 象,已被GC的對象,反向查看分配的堆棧。Jvisualvm動態分析jvm內存情況和gc情況,插件:visualGC.
在JDK_HOME/bin(默認是C:\Program Files\Java\jdk1.6.0_13\bin)目錄下面,有一個jvisualvm.exe文件,雙擊打開。啓動起來後和jconsole 一樣同樣可以選擇本地和遠程,如果需要監控遠程同樣需要配置相關參數。
ab 、abs
ab是apache 推出的壓力測試工具,可以用來測試http服務器的性能,得出QPS。全稱:Apache HTTP server benchmarking tool
abs 則是apache 推出的壓力測試工具,可以用來測試https服務器的性能,得出QPS
工具下載地址:https://www.apachehaus.com/cgi-bin/download.plx
工具官方文檔地址:http://httpd.apache.org/docs/2.4/programs/ab.html
用法簡介:下載工具進入Apache24/bin目錄下載就可以看到ab.exe和abs.exe 在命令行中輸入
ab -n 1000 -c 20 http://127.0.0.1:8080/
-n 要發多少個請求數 -c 每次進行多少請求 注意:必須是 http://127.0.0.1:8080/ ,“/” 不可以被省略,測試地址必須是一個url。
jconsole
jdk自帶命令。可視化監控jvm
gc log
gc時打印出來的日誌。
在jvm啓動參數加上以下,可以開啓gc log,配置gclog的輸出位置
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:/usr/local/project/jvmtest/gc.log
jcmd
在JDK1.7以後新增的一個命令行工具。可以用它來導出堆、查看Java進程、導出線程信息、執行GC、還可以進行採樣分析(jmc 工具的飛行記錄器)。
GCViewer
日誌可視化分析工具。
下載地址:http://www.tagtraum.com/gcviewer.html
GCHisto
日誌分析工具。
下載:http://java.net/projects/gchisto
直接點擊gchisto.jar就可以運行,點add載入gc.log
GCLogViewer
日誌分析工具。
下載:http://code.google.com/p/gclogviewer/
點擊run.bat運行 整個過程gc情況的趨勢圖,還顯示了gc類型,吞吐量,平均gc頻率,內存變化趨勢等 Tools裏還能比較不同gc日誌
HPjmeter
日誌分析工具。
下載地址: http://www.hp.com/go/java
工具很強大,但只能打開由以下參數生成的GC log, -verbose:gc -Xloggc:gc.log,添加其他參數生成的gc.log無法打開。
garbagecat
日誌分析工具。
http://code.google.com/a/eclipselabs.org/p/garbagecat/wiki/Documentation
Jprofiler
JProfiler是由ej-technologies GmbH公司開發的一款性能瓶頸分析工具.
下載:https://www.ej-technologies.com/products/jprofiler/overview.html
GCeasy
一款超好用的在線分析GC日誌的網站
jpda
java遠程調試工具。JPDA(Java Platform Debugger Architecture)是Java平臺調試體系結構的縮寫。由3個規範組成,分別是JVMTI(JVM Tool Interface),JDWP(Java Debug Wire Protocol),JDI(Java Debug Interface) 。
top
linux命令。實時顯示正在執行進程的 CPU 使用率、內存使用率以及系統負載等信息。
top Hp pid
查看具體線程使用系統資源情況
vmstat
linux命令。監測指定採樣週期和次數。它不僅可以統計內存的使用情況,還可以觀測到 CPU 的使用率、swap 的使用情況。但 vmstat 一般很少用來查看內存的使用情況,而是經常被用來觀察進程的上下文切換。Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控。
pidstat
linux命令。pidstat是 Sysstat 中的一個組件;可以通過yum install sysstat 安裝該監控組件。pidstat 命令則是深入到線程級別的監測工具。
gdb
linux命令。是一個由GNU開源組織發佈的、UNIX/LINUX操作系統下的、基於命令行的、功能強大的程序調試工具。
nmon
Linux工具。很輕鬆的監控Linux系統的 CPU、內存、網絡、硬盤、文件系統、NFS、高耗進程、資源和 IBM Power 系統的微分區的信息)。
下載:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downlo
JMeter
Apache JMeter爲一款廣爲流傳的開源壓測產品,最初被設計用於Web應用測試,如今JMeter可以用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP服務器等等,還能對服務器、網絡或對象模擬巨大的負載,通過不同壓力類別測試它們的強度和分析整體性能。另外,JMeter能夠對應用程序做功能測試和迴歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。爲了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。 JMeter的特點包括對HTTP、FTP服務器、數據庫進行壓力測試和性能測試;完全的可移植性;完全 Swing和輕量組件支持包;完全多線程;緩存和離線分析/回放測試結果;可鏈接的取樣器;具有提供動態輸入到測試的功能;支持腳本編程的取樣器等。在設計階段,JMeter能夠充當HTTP PROXY(代理)來記錄瀏覽器的HTTP請求,也可以記錄Apache等WebServer的log文件來重現HTTP流量,並在測試運行時以此爲依據設置重複次數和併發度(線程數)來進行壓測。
類似的壓測工具還有:LoadRunner、NeoLoad、WebLOAD、Loadster、Load impact、CloudTest、Loadstorm、阿里雲PTS、壓測寶。
更多壓測工具詳情:https://blog.csdn.net/langzitianya/article/details/81479422
sar
linux命令。(System Activity Reporter 系統活動情況報告)是目前 Linux 上最爲全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤 I/O、CPU 效率、內存使用狀況、進程活動及 IPC 有關的活動等。 free linux命令。顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩衝區內存。
iostat
linux命令。是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。iostat屬於sysstat軟件包。可以用yum直接安裝。 tee linux命令用於讀取標準輸入的數據,並將其內容輸出成文件。 tee指令會從標準輸入設備讀取數據,將其內容輸出到標準輸出設備,同時保存成文件。