一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java虛擬機JVM優化實戰的過程全記錄

Java虛擬機JVM優化實戰的過程全記錄

2020-12-11 15:24MartinDai Java教程

有人說Java之所以能夠崛起,JVM功不可沒。Java虛擬機最初服務于讓Java語言凌駕于平臺之上,實現“編寫一次,到處運行”,那么下面這篇文章主要給大家分享了個關于Java虛擬機JVM優化實戰的過程全記錄,需要的朋友可以參考借鑒,

前言

java虛擬機是運行所有java程序的抽象計算機,是java語言的運行環境,它是java 最具吸引力的特性之一。java虛擬機是通過在實際的計算機上仿真模擬各種計算機功能模擬來實現的,通過java虛擬機,您只要根據jvm規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何java代碼能夠在該系統上運行。

最近在看jvm群里有人發了一個gc情況,讓人幫忙看優化的,于是我也湊熱鬧發了出來想讓群里的大神們指導優化一下,以下是優化過程記錄.

一開始我貼了下面的兩張圖

jstat看gc記錄

jstat -gcutil pid 1000 20

Java虛擬機JVM優化實戰的過程全記錄

jcmd看vm參數(第一次使用這個命令)

jcmd pid vm.flags

Java虛擬機JVM優化實戰的過程全記錄

可以看到ygc了8w多次,fgc有1100+,相比較另一個發出來求教的,我這個更糟糕,他的是運行了3天左右 fgc370次

然后飛神讓我看下運行時間

ps -p pid -o etime

Java虛擬機JVM優化實戰的過程全記錄

我的也是跑了3天左右,感覺優化空間非常的大

又讓我拉了jvm配置

jinfo -flags pid(沒權限,沒執行成功)

ps aux | grep pid

Java虛擬機JVM優化實戰的過程全記錄

發現我的jvm完全沒做過優化,據我自己的印象,就改過permsize,因為這個oom過,所以調大了一點。

然后飛神給了我一份他之前用過的配置

?
1
java_opts="-xms2g -xmx2g -xmn512m -xx:maxpermsize=256m -server -xss256k -xx:permsize=128m -xx:+printgcdetails -xx:+printgcdatestamps -xloggc:/data/log/gclog/gc.log -xx:+heapdumponoutofmemoryerror -xx:heapdumppath=/data/log/jvmdump/jvm.bin -xx:+useconcmarksweepgc -xx:+useparnewgc -xx:cmsinitiatingoccupancyfraction=75 -xx:+usecmsinitiatingoccupancyonly -xx:+usecmscompactatfullcollection -xx:cmsfullgcsbeforecompaction=0 -xx:+cmsclassunloadingenabled -xx:+tieredcompilation -xx:+printtenuringdistribution -xx:+printgcapplicationstoppedtime -xx:+printheapatgc

并囑咐了一句loggc和dumppath提前mkdir

因為已經是周五晚上了,我沒有權限直接修改這個配置,所以準備下周一再配上去看效果。

萬萬沒想到,回家路上,笨神出來說話了,要我看下存活實例

jmap -histo:live pid

Java虛擬機JVM優化實戰的過程全記錄

由于沒有開啟gc日志,于是笨神讓我開著jstat(飛神提到jstat -gccause pid可以gc情況),然后在另一個窗口執行jmap -histo:live

剛開始沒明白,后來才知道原來這個命令可以觸發fgc

Java虛擬機JVM優化實戰的過程全記錄

可以看到fgc了以后old區從90%降到了79%,fgc效果很差,說明活對象太多了。

回過頭去看jmap實例,發現atomicinteger這個類對象特別的多,竟然有300多萬個實例,已經是top2了。

翻看代碼沒有發現有使用這個類的地方,初步懷疑是依賴的jar包使用的,笨神建議dump用mat分析一下。

dump命令導出文件

jmap -dump:format=b,file=pid.dump pid

總結

以上就是這篇文章的全部內容了,暫時告一段落,持續更新中。希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://segmentfault.com/a/1190000010510968

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 丝瓜秋葵番茄绿巨人在线观看 | 亚洲成人免费观看 | 国产精品13p | 亚洲第一色区 | 国产精品2 | 春光乍泄在线 | 国产视频二 | 天天操天天射天天爽 | 久久视频这里只精品99热在线观看 | 全弄乱纶小说 | 奇米影视7777 | 欧美人与禽交片在线播放 | 亚洲视频免费在线观看 | 无限资源在线观看完整版免费下载 | 婷婷丁香色综合狠狠色 | 美女脱了内裤让男桶爽 | 日韩毛片大全免费高清 | 国产精品拍拍拍福利在线观看 | 3d欧美人与禽交 | 无码AV免费精品一区二区三区 | 精品欧美一区二区三区久久久 | 国产成人手机在线好好热 | 亚洲成综合人影院在院播放 | 国产九九视频在线观看 | 湖南美女被黑人4p到惨叫 | 国产亚洲欧美在线中文bt天堂网 | 免费看美女被靠到爽的视频 | 毛片应用 | 成人网18免费网站 | 扒开双腿疯狂进出爽爽动态图 | 亚洲国产精品成人午夜在线观看 | 国产精品吹潮香蕉在线观看 | 国产精品久久现线拍久青草 | 国产免费大片 | 青草碰人人澡人人澡 | 99视频福利| 亚洲精彩视频在线观看 | 日本公与妇中文在线 | 欧美精品久久久久久久免费观看 | 免费观看视频高清在线 | α级毛片|