真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jvm堆內(nèi)存優(yōu)化詳解-創(chuàng)新互聯(lián)

在日常的運維工作中用到tomcat,都需要對tomcat中的jvm虛擬機進行優(yōu)化,只有知道需要優(yōu)化參數(shù)的具體用處,才能深刻體會優(yōu)化jvm的意義所在。

成都創(chuàng)新互聯(lián)專注于青山湖網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供青山湖營銷型網(wǎng)站建設(shè),青山湖網(wǎng)站制作、青山湖網(wǎng)頁設(shè)計、青山湖網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造青山湖網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供青山湖網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

在平常的工作中我們談對jvm的優(yōu)化,主要是針對java的堆內(nèi)存的優(yōu)化和垃圾回收機制的優(yōu)化。

JVM堆內(nèi)存示意圖:

    jvm堆內(nèi)存優(yōu)化詳解

JVM的堆內(nèi)存的組成:

 young generation:新生代

  eden:伊甸園區(qū)

  surived:存活區(qū)

  其中存活區(qū)有2個,第1個為S0,第2個為S1

 old generation:老年代

 permanent generation:持久代

堆內(nèi)存相關(guān)參數(shù)詳解:

 -Xms:初始化堆內(nèi)存大小,不包括持久代的內(nèi)存,默認(rèn)為物理內(nèi)存的1/64,不會超過1G

 -Xmx:大堆內(nèi)存大小,不包括持久代內(nèi)存,默認(rèn)為物理內(nèi)存的1/4

 -Xmn:新生代內(nèi)存大小,默認(rèn)值為Xmx的3/8,老年代內(nèi)存則為5/8

 -XX:NewRatio:指定新生代與老生代的內(nèi)存的比值,默認(rèn)值為2

 -XX:SurvivorRatio:eden和2個存活區(qū)內(nèi)存的比值,默認(rèn)值為8

 -XX:PermSize:初始化時持久代內(nèi)存的大小

 -XX:MaxPermSize:大持久代內(nèi)存的大小

 建議:

   1.一般建議Xms等于Xmx,好處是避免每次gc后,調(diào)整堆的大小,減少系統(tǒng)內(nèi)存分配開銷

   2.建議-XX:PermSize和-XX:MaxPermSize的值相同,因為永久代大小的調(diào)整也會導(dǎo)致堆內(nèi)存需要觸發(fā)FGC; 一般設(shè)置為128M就足夠;

棧內(nèi)存相關(guān)參數(shù)詳解:

 -Xss:指定線程的大??臻g,默認(rèn)為1M

jvm垃圾收集算法:

 1.引用計數(shù)算法

   每個對象有一個引用計數(shù)屬性,新增一個引用計數(shù)加1,引用釋放時計數(shù)減1,計數(shù)為0可以回收。

   此方法簡單,無法解決對象相互循環(huán)引用的問題。還有一個問題是如何解決精準(zhǔn)計數(shù)。

 2.根搜索算法(GC Roots)

   從GC Roots開始向下搜索,搜索所走過的路徑稱為引用鏈,當(dāng)一個對象到GC Roots沒有任何引用鏈時,則證明此對象是不可用的。

jvm垃圾回收算法:

 1.復(fù)制算法(Copying)

 2.標(biāo)記清除算法(Mark-Sweep)

 3.標(biāo)記整理壓縮算法(Mark-Compac)

 復(fù)制算法:

 采用從根集合掃描,并將存活對象復(fù)制到一塊新的沒有使用過的空間中,成本是需要一塊內(nèi)存交換空間

 此算法用于新生代內(nèi)存回收,從E區(qū)復(fù)制到S0或者S1

 標(biāo)記清除算法:

 采用從根集合掃描,對存活的對象標(biāo)記,標(biāo)記完畢后再掃描整個空間中未被標(biāo)記的對象,進行回收。

 優(yōu)點:在存活對象較多的情況下極為高效

 缺點:標(biāo)記清除算法直接回收不存活的對象,會造成內(nèi)存碎片

 標(biāo)記整理壓縮算法:

 采用與標(biāo)記清除一樣的方式進行對象的標(biāo)記,但在清除時不同,在回收不存活的對象后,會將所有存活

 對象往左端空閑空間移動,并更新對應(yīng)的指針。此算法在標(biāo)記清除的基礎(chǔ)上,又進行了對象的移動。

 優(yōu)點:可以解決內(nèi)存碎片問題

 缺點:成本要比標(biāo)記清除算法要高

垃圾回收名詞解釋:

 1.串行回收(Serial) --> gc單線程內(nèi)存回收,會暫停所有用戶線程,獨占式回收

 2.并行回收(Parallel) --> 多個gc線程并行工作,會暫停所有用戶線程,獨占式回收

 3.并發(fā)回收(CMS) --> gc線程和用戶線程同時執(zhí)行,不需要停頓用戶線程(用戶線程還是需要停頓,只是很短)

GC串行回收器(Serial回收器):

 1.是一個單線程的收集器,只能使用一個CPU或一條線程去完成垃圾收集;在進行垃圾收集時,必須

    暫停所有其它工作線程。直到收集完成。

 2.缺點:Stop-the-World

 3.優(yōu)勢:簡單,對于單CPU的情況,由于沒有多線程交互開銷,反而更高效。

 開啟方法:

   -XX:+UseSerialGC來開啟

   使用此參數(shù)后:新生代和老年代都采用Serial回收器進行垃圾回收

   新生代使用復(fù)制算法

   老年代使用標(biāo)記壓縮算法

GC并行回收器(ParNew回收器):

 1. 并行回收也是獨占式回收器,在收集過程中,應(yīng)用程序會全部暫停。但由于并行回收器使用多線程

  進行垃圾回收,因此在并發(fā)能力比較強的CPU上,它產(chǎn)生的停頓時間要短于串行回收器。而在單

  CPU上或者并發(fā)能力較弱的系統(tǒng)中,回收效果不會比串行回收器好。

 開啟方法:

  -XX:UserParNewGC

  使用此參數(shù)后:新生代使用并行回收收集器,老年代使用串行收集器

  -XX:ParallelGCThreads 可以指定線程數(shù)量,最好與CPU數(shù)量相當(dāng)

  新生代使用復(fù)制算法

新生代吞吐量優(yōu)先回收器(Parallel Scavenge回收器):

 1.吞吐量優(yōu)先回收器:關(guān)注CPU吞吐量,即運行用戶代碼的時間/總時間,這種收集器能最高效率利用CPU。

 開啟方法:

  -XX:UseParallelGC開啟

  使用此參數(shù)后:將使用Parallel Scavenge+Serial Old收集器組合回收垃圾,這也是Server模式下的默認(rèn)值。

  -XX:GCTimeRation 可以設(shè)置用戶執(zhí)行時間占總時間的比例,默認(rèn)為99,即用1%時間進行垃圾收集

  新生代使用復(fù)制算法

新生代吞吐量優(yōu)先回收器(Parallel Scavenge回收器):老生代用Parallel Old算法

 開啟方法:

  -XX:UseParallelOldGC開啟

  使用Parallel Scavenge和Parallel Old組合收集器進行收集

  老年代使用標(biāo)記整理算法

并發(fā)標(biāo)記清除回收器(CMS回收器):

 運作過程分為4個階段:初始標(biāo)記,并發(fā)標(biāo)記,重新標(biāo)記,并發(fā)清除

 其中標(biāo)記和重新標(biāo)記兩個階段仍然需要Stop-The-World,其它過程中收集器和用戶線程是一起工作的

 啟動方法:

  -XX:ParallelCMSMarkSweepGC

  使用此參數(shù)后:使用ParNew + CMS + Serial Old的組合進行內(nèi)存回收。Serial Old作為CMS出現(xiàn)

  “Concurrent Mode Failure”失敗后的后備收集器使用。

 其它參數(shù):

  -XX:ParallelCMSThreads 手工設(shè)置CMS的線程數(shù)量

  -XX:CMSInitiatingOccupancyFraction:設(shè)置CMS收集器在老年代空間被使用多少后發(fā)出垃圾收集,默認(rèn)為68%,僅在CMS收集器時有效。

  -XX:CMSFullGCBeforeCompaction:設(shè)置CMS收集器在進行若干次垃圾收集后再進行一次內(nèi)存碎片整理過程,通常與-XX:CMSInitiatingOccupancyFraction一起使用

GC性能監(jiān)控指標(biāo):

 吞吐量 --> 應(yīng)用花在非GC上的時間百分比

 CG負荷 --> 與吞吐量相反,指應(yīng)用花在GC上的時間百分比

 暫停時間 --> 應(yīng)用花在GC stop-the-world的時間

 GC頻率 -->

 一個交互式的應(yīng)用要求暫停時間越少越好,非交互性應(yīng)用,要求GC負荷越低越好

 一個實時系統(tǒng)對暫停時間和GC負荷的要求都是越低越好

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


文章標(biāo)題:jvm堆內(nèi)存優(yōu)化詳解-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/dsopji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部