1. 程式人生 > >JVM分析工具以及JVM常用調優引數

JVM分析工具以及JVM常用調優引數

#檢視java中的所有執行緒
top -H -p pid[程序號]
pidstat -p pid -u -t[執行緒級]
#檢視啟動java程序
jps
#檢視Java記憶體資訊  jmap
jmap -heap pid   ===>檢視Java程序的堆分配資訊
jmap -histo pid  ===>匯出堆資訊
jmap -dump:live,file=dumpfile pid  ===>匯出堆資訊
jhat dumpfile   ===>可以與上面jmap -dump匯出的堆檔案  通過網址檢視堆資訊

#檢視java棧資訊 jstack
jstack -l pid  > jstack.log   可以打印出棧資訊   pid是Java程序
jstack.log   分析===》需要找出Java程序中CPU使用頻率較高的執行緒   在把執行緒的pid轉換成16進位制  在日誌找出對應的棧資訊 就可以找到對應的類使用情況  在修改程式碼

#實時監控Java程序的堆使用情況
jstat -gcutil pid[程序號]  3s[幾秒輸出一次]   堆使用情況統計
jstat -class pid  類載入統計
jstat -compiler pid  編譯統計

#=====================================jvm引數設定================================
JAVA_OPTS="-server -Xms1280m -Xmx1280m -XX:PermSize=128M -XX:MaxNewSize=512m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/sda6/heapdump/tomcat_test "

-server  使用service版的jdk  效能比client版的jdk好
-Xms 堆初始化大小  預設是  系統記憶體的1/64  Xms 和 Xmx最好配置一樣
-Xmx 堆最大記憶體    預設是  系統記憶體的1/4
-Xmn 年輕代堆大小   Eden+From+To
-XX:NewSize  年輕代大小
-XX:MaxNewSize 年輕代最大值
-XX:PermSize 持久帶初始值  jdk1.7    1.8===>-XX:MaxMetaspaceSize  元資料區  直接使用堆外記憶體
-XX:MaxPermSize 持久帶最大值  jdk1.7
-Xss  每個執行緒的堆疊大小  jdk1.5之後預設是1M  可以根據程式自身的情況進行優化
-XX:NewRatio   年輕代與老年代的比例  例如4  就是1:4的比例進行分配
-XX:SurvivorRatio  survivor與Eden的比例 例如8  就是 2:8的比例進行分配
-XX:MaxTenuringThreshold  年輕代GC幾次後進入老年代  需要配置改引數  為0的話Eden gc完要是物件存活下來 就直接進入老年代
-XX:MaxDirectMemorySize  最大直接記憶體(堆外記憶體)  預設值跟-Xmx值一樣
 

相關推薦

JVM分析工具以及JVM常用調引數

#檢視java中的所有執行緒 top -H -p pid[程序號] pidstat -p pid -u -t[執行緒級] #檢視啟動java程序 jps #檢視Java記憶體資訊  jmap jmap -heap pid   ===>檢視Java程序的堆分配資訊 jma

JVM常用調引數

-Xmx:最大JVM可用記憶體, 例:-Xmx4g -Xms:最小JVM可用記憶體, 例:Xms4g -Xmn:年輕代記憶體大小,例:-Xmn2560m -XX:PermSize:永久代記憶體大小,該值太大會導致fullGC時間過長,太小將增加fullGC頻率,例:-XX:PermSize=128m -

RocksDB 的常用調引數

RocksDB 的引數以其資料多和複雜著稱,要全部弄懂也要費一番功夫,這裡也僅僅會說一下我們使用的一些引數,還有很多我們也需要後面慢慢去研究。 Parallelism RocksDB 有兩個後臺執行緒,flush 和 compaction,兩個都可以同時

JVM 基本引數使用與調JVM分析工具初探

一、JVM引數型別jvm引數型別一般包含以下三種類型:標準引數、X引數和XX引數。1.1引數型別說明1.1.1標準引數功能和輸出已經穩定得,在未來的JVM版本中不會修改的引數。圖1.jvm標準引數列表1.1.2 X引數非標準化引數 在未來的版本可能會改變 所有的引數都用-X開

JVM常用調工具介紹

  前言 王子在之前的JVM文章中已經大體上把一些原理性問題說清楚了,今天主要是介紹一些實際進行JVM調優工作的工具和命令,不會深入講解,因為網上資料很多,篇幅可能不長,但都是實用的內容,小夥伴們有不清楚的可以自行查詢資料。   jstat命令 jstat命令可以檢視到很多的jvm資訊,詳

JVM調引數、方法、工具以及案例總結

這種文章挺難寫的,一是JVM引數巨多,二是內容枯燥乏味,但是想理解JVM調優又是沒法避開的環節,本文主要用來總結梳理便於以後翻閱,主要圍繞四個大的方面展開,分別是JVM調優引數、JVM調優方法(流程)、JVM調優工具、JVM調優案例,調優案例目前正在分析,會在將來補上。 ## 垃圾回收有關引數 引數部

jvm工具介紹和效能調

jvm工具 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/ Jps Jstat Jinfo Jmap Jhat Jstack JConsole Jps (Java p

JVM調(四)常用調方案

由於Full GC的成本要遠遠高於Minor GC,因此儘可能的將物件分配在新生代是一項明智的選擇。 大部分情況下,jvm會嘗試在eden區域分配物件,但是因為空間緊張等問題,很可能不得不將部分年輕物件提前向老年代壓縮。因此,可以為程式分配一個合理的新生代空間,以最大限度避免新物件直接進入老年代的情

JVM常用調案例

在本文中會介紹一些常用的JVM調優思路以及調優方法,這些方法是為了解決某個具體問題,提高某個區域性效能而特別設定的。 使用它們可能會對其他效能指標產生不良的影響,應該在實際應用中,根據具體情況進行折中和權衡。總結自《Java程式效能優化》 1.將新物件預留在新生代

jvm常用調策略

jvm引數型別: (瞭解 不常用) -xint:解釋執行 -Xcomp:編譯執行 -Xmixed:混合模式,jvm自己決定使用哪種方式 (重點) 分為boolean型別: -XX:[+-]<name> 表示是否啟用jvm的某個引數 非boolean型別: -X

visualvm工具遠端對linux服務斷的JVM虛擬機器進行監控與調的方法

文/朱季謙   最近在做了一些JVM監控與調優的事情,算是第一次實踐,還比較陌生,故而先把這一次經驗簡單記下筆記,這樣,對後面學習調優方面時,不至於又想不起來了。本文件主要總結在window本地環境遠端對linux服務斷的JVM虛擬機器進行監控與調優的方法。 visualvm工具是JDK自帶的,在j

jvm性能監控與GC調

builder mat ont cati 顯示 %20 系統 處理 port 目錄 一 提出問題 二 基於JDK命令行工具的監控 1. JVM的三種參數類型 1.1 標準參數 1.2 X 參數 1.3 XX 參數 1.4 常用命令 2. jstat查看虛擬機統計信息 2

JVM虛擬機器效能監控與調(JDK命令列、JConsole)

很多資料在介紹JDK命令列工具時並不是在Java8環境下,因此還在使用過時的永久區系列的引數,給一些讀者造成困難。 Java8使用Metaspace(元空間)代替永久區,對於64位平臺,為了壓縮JVM物件中的_klass指標的大小,引入了類指標壓縮空間(Compressed Class Pointer Sp

JVM 分析工具概述

JPS Jstat Jinfo Jmap Jhat (一般不用,記憶體佔用較高) Jstack Jconsole visualVm JPS java process status 檢視程序

JVM記憶體管理及JAVA效能調相關筆記

JVM篇 1.JVM記憶體分配:方法區、Java棧、本地方法棧、堆、程式計數器。方法區:在方法區中,儲存了每個類的資訊(包括類的名稱、方法資訊、欄位資訊)、靜態變數、常量以及編譯器編譯後的程式碼等。Java棧:用來儲存方法中的區域性變數(包括在方法中宣告的非靜態變數以及函式形參)。對於基本資料型別的

JVM記憶體結構--新生代及新生代裡的兩個Survivor區(下一輪S0與S1交換角色,如此迴圈往復)、常見調引數

轉自http://www.cnblogs.com/duanxz/p/6076662.html 一、為什麼會有年輕代   我們先來屢屢,為什麼需要把堆分代?不分代不能完成他所做的事情麼?其實不分代完全可以,分代的唯一理由就是優化GC效能。你先想想,如果沒有分代,那我們

JVM(JAVA虛擬機器)調及原理

堆記憶體設定 原理 JVM堆記憶體分為2塊:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java類定義資訊,與垃圾收集器要收集的Java物件關係不大。Heap

Java效能系一(JVM、垃圾回收、記憶體調、常見引數

一、什麼是JVM     JVM是Java Virtual Machine(Java虛擬機器)的縮寫,JVM是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。     Java語言的一個非常重要的

jvm實戰】IDEA執行速度調

1.個人電腦配置 CPU:Intel Core i7-7700HQ 2.80GHz RAM:16.0G OS:windows10 64位 2.IDEA啟動速度優化 開啟ides安裝目錄裡的bin資料夾,開啟idea.exe.vmoptions(64位的叫idea64.e

JVM效能調的6大步驟,及關鍵調引數詳解

JVM效能調優的6大步驟,及關鍵調優引數詳解 JVM效能調優方法和步驟 1.監控GC的狀態 2.生成堆的dump檔案 3.分析dump檔案 4.分析結果,判斷是否需要優化 5.調整GC型別和記憶體分配 6.不斷分析