JVM性能調(diào)優(yōu)解決方案.pdf

JVM性能調(diào)優(yōu)解決方案.pdf

ID:57527782

大?。?18.71 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2020-08-26

JVM性能調(diào)優(yōu)解決方案.pdf_第1頁(yè)
JVM性能調(diào)優(yōu)解決方案.pdf_第2頁(yè)
JVM性能調(diào)優(yōu)解決方案.pdf_第3頁(yè)
JVM性能調(diào)優(yōu)解決方案.pdf_第4頁(yè)
JVM性能調(diào)優(yōu)解決方案.pdf_第5頁(yè)
資源描述:

《JVM性能調(diào)優(yōu)解決方案.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、精品文檔JVM性能調(diào)優(yōu)解決方案(總結(jié))一、引言本文的讀者是技術(shù)支持人員。閱讀本文后,你將理解jboss的啟動(dòng)腳本文件(run.sh)中有一系列的JVM配置參數(shù)的含義,以及如何調(diào)整它們,從而使得MegaEyes中心管理服務(wù)器的性能得到優(yōu)化。MegaEyes中心管理服務(wù)器的性能調(diào)優(yōu)涉及到系統(tǒng)的多個(gè)方面,包括MegaEyes應(yīng)用本身、應(yīng)用服務(wù)器(jboss)、數(shù)據(jù)庫(kù)和java虛擬機(jī)(JVM)等等。本文重點(diǎn)介紹JVM的性能優(yōu)化。需要注意的是,JVM性能調(diào)優(yōu)具有應(yīng)用獨(dú)特性(applicationspecific

2、),就是說(shuō),不同的應(yīng)用情形應(yīng)該有不同的調(diào)整方案,這就要求你首先要觀察JVM的運(yùn)行狀態(tài),然后根據(jù)觀察結(jié)果調(diào)整參數(shù)。沒(méi)有一個(gè)通用的調(diào)優(yōu)方案可以適用于所有的MegaEyes應(yīng)用。什么是性能調(diào)優(yōu)對(duì)性能調(diào)優(yōu),不同的人有不同的理解,本文是指對(duì)下列指標(biāo)最大化:?并發(fā)用戶(hù)(concurrentusers),在服務(wù)請(qǐng)求失敗或請(qǐng)求響應(yīng)超過(guò)預(yù)期?時(shí)間之前,系統(tǒng)支持的最大并發(fā)用戶(hù)數(shù)量。?系統(tǒng)容量(throughput),可以用每秒處理的事務(wù)(transaction)數(shù)量?計(jì)算。?可靠性(reliability)?換句話說(shuō),我

3、們想對(duì)更多的用戶(hù)提供更快捷的、不會(huì)中斷的服務(wù)。JVM性能調(diào)優(yōu)的重點(diǎn)JVM的性能調(diào)優(yōu)的重點(diǎn)是垃圾回收(gc,garbagecollection)和內(nèi)存管理。垃圾回收的時(shí)候會(huì)導(dǎo)致整個(gè)虛擬機(jī)暫停服務(wù),因此,應(yīng)該盡可能地縮短垃圾回收的處理時(shí)間。JVM內(nèi)存JVM占用的內(nèi)存稱(chēng)為堆(heap),它被分為三個(gè)區(qū):年輕(young,又稱(chēng)為new)、老(tenured,又稱(chēng)為old)和永生(perm)。這三個(gè)區(qū)是按照java對(duì)1歡迎下載。精品文檔象的生存期劃分的,在new區(qū)的對(duì)象生存期最短,很快就會(huì)被gc回收;perm區(qū)

4、的對(duì)象生存期最長(zhǎng),與JVM同生死。Perm區(qū)的對(duì)象不會(huì)被gc回收。new區(qū)又被分為三個(gè)部分:伊甸園(eden)和兩個(gè)幸存者(survivor)。對(duì)象的創(chuàng)建總是在eden部分(這大概就是命名該部分為eden的原因吧)。兩個(gè)survivor中總有一個(gè)是空的,它作為另一個(gè)survivor的緩沖區(qū)。當(dāng)gc發(fā)生時(shí),所有eden和survivor中活下來(lái)的對(duì)象被移動(dòng)到另一個(gè)survivor中。對(duì)象會(huì)在兩個(gè)survivor之間不斷移動(dòng),直到活得足夠久,然后移動(dòng)到old區(qū)。我們可以猜想,之所以如此劃分使用內(nèi)存,肯定是

5、為了縮短gc的執(zhí)行時(shí)間,提高gc的執(zhí)行效率。垃圾回收算法除了默認(rèn)的垃圾回收算法外,JVM還提供了兩個(gè):并行(parallel)和并發(fā)(concurrent),前者作用在new區(qū),后者作用在old區(qū)。兩者可以同時(shí)使用。并行算法會(huì)產(chǎn)生多個(gè)線程以提高執(zhí)行效率。當(dāng)有多個(gè)cpu的時(shí)候,它會(huì)顯著縮短gc的工作時(shí)間。并發(fā)算法可以在JVM不中斷對(duì)應(yīng)用的服務(wù)的情況下執(zhí)行(通常情況下,在gc工作的時(shí)候JVM停止對(duì)應(yīng)用的服務(wù))。二、性能參數(shù)參數(shù)含義說(shuō)明-XmsHeap的最小尺寸-XmxHeap的最大尺寸作為一個(gè)通行的準(zhǔn)則,

6、設(shè)置Xms和Xmx的尺寸一樣,以減少gc的次數(shù)。要將它們?cè)O(shè)置足夠大,否則就會(huì)產(chǎn)生outofmemory錯(cuò)誤,但又不能設(shè)置過(guò)大,過(guò)大會(huì)增加gc的工作時(shí)間。-Xmnnew的尺寸-XX:PermSizePerm的最小尺寸-XX:MaxPermSizePerm的最大尺寸類(lèi)似heap的設(shè)置,應(yīng)該將perm設(shè)置為固定尺寸,即最大和最小尺寸一樣。-XX:SurvivorRatioNew區(qū)中eden與Survivor區(qū)的比值-XX:+UseParallelGC使用parallelgc2歡迎下載。精品文檔-XX:Par

7、allelGCThreadsParallelgc的線程個(gè)數(shù)與cpu個(gè)數(shù)相同,使得所有cpu都參與gc工作。JVM的參數(shù)主要由-X和-XX類(lèi)型的選項(xiàng)組成,上邊列出了一些對(duì)內(nèi)存和gc的性能影響比較大的。三、性能參數(shù)調(diào)優(yōu)要調(diào)整參數(shù)首先要觀察它們。觀察JVM內(nèi)存和gc的工具很多,jdk本身也提供了一些,這些工具簡(jiǎn)單、實(shí)用,而且不需要安裝。其中,最常用的是jps和jstat,前者用來(lái)查看JVM的進(jìn)程id(pid),后者用這個(gè)pid作為參數(shù)來(lái)得到內(nèi)存和gc的狀態(tài),就是說(shuō),在執(zhí)行jstat之前必須用jps得到JVM

8、的pid。Jstat的例子::jstat-gcutil2130825010其中,21308是(運(yùn)行jboss)的JVM的pid;250是采樣間隔,單位是毫秒,即250毫秒采集一次數(shù)據(jù);10是采樣次數(shù)。上述命令的執(zhí)行結(jié)果如下:S0S1EOPYGCYGCTFGCFGCTGCT0.000.0011.395.2913.573281.955327133.126135.0810.000.0011.395.2913.573281.955327133.126135.08

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。