以hbase為例:在hbase的配置文件路徑下,設(shè)置了GC log輸出路徑/app/hbase-config/hbase-env.sh
export HBASE_OPTS="-Xmx16384m -Xms16384m -Xmn8192m -XX:PermSize=160M -XX:MaxPermSize=160M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=3 -XX:+CMSParallelRemarkEnabled -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:PrintFLSStatistics=1 -Xloggc:/app/hbase/logs/hbase_gc.log $HBASE_OPTS"
可以查詢(xún)到log的相關(guān)信息
#jstat -gccause 79751 1000 1000 //獲取GC相關(guān)指標(biāo),表示每1000毫秒查詢(xún)一次79751垃圾收集狀況。
Usage: jstat -help|-options
?????? jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
?參數(shù)解釋?zhuān)?br/>Options — 選項(xiàng),我們一般使用 -gcutil 查看gc情況
vmid??? — VM的進(jìn)程號(hào),即當(dāng)前運(yùn)行的java進(jìn)程號(hào)
interval– 間隔時(shí)間,單位為秒或者毫秒
count?? — 打印次數(shù),如果缺省則打印無(wú)數(shù)次
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 8.98 11.16 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 12.79 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 14.94 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 16.04 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 17.98 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 20.34 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 21.83 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
0.00 8.98 22.64 69.83 12.33 156 50.788 16 280.103 330.891 unknown GCCause No GC
E列代表
O E-->O 新生代轉(zhuǎn)移到老代,O積累到80%就會(huì)觸發(fā)full gc
具體意思如下:
E(表示,Eden),代表這臺(tái)服務(wù)器的新生代Eden區(qū)使用了11.16的空間,
S0 S1 兩個(gè)Survivor區(qū)(S0,S1表示Survivor0、Survivor1),Survivor0里面是空的,Survivor1占了8.98%
老年代(O,表示old) 和永久帶(P,表示Permanent)分別使用了69.83% 和12.33%的空間。
程序運(yùn)行以來(lái)共發(fā)生Minor GC(YGC ,表示young gc)156次,總耗時(shí)50.788秒;
發(fā)生Fulle GC (FGC,表示full GC )16次,full GC總耗時(shí)(FGCT,表示full gc time)為330.891秒,總的GC總耗時(shí)(GCT,表示GC Time)為330.891秒
LGCC Cause of last Garbage Collection.
GCC Cause of current Garbage Collection.
Java 6 JDK輸出如下:
[hadoop@0321 logs]$ jmap -heap 29877
Attaching to process ID 29877, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.45-b01
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 21474836480 (20480.0MB)
NewSize = 4294967296 (4096.0MB)
MaxNewSize = 4294967296 (4096.0MB)
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 67108864 (64.0MB)
MaxPermSize = 67108864 (64.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 3865509888 (3686.4375MB)
used = 481048576 (458.763671875MB)
free = 3384461312 (3227.673828125MB)
12.444634470949257% used
Eden Space:
capacity = 3436052480 (3276.875MB)
used = 481048576 (458.763671875MB)
free = 2955003904 (2818.111328125MB)
14.00003576196834% used
From Space:
capacity = 429457408 (409.5625MB)
used = 0 (0.0MB)
free = 429457408 (409.5625MB)
0.0% used
To Space:
capacity = 429457408 (409.5625MB)
used = 0 (0.0MB)
free = 429457408 (409.5625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 12884901888 (12288.0MB)
used = 0 (0.0MB)
free = 12884901888 (12288.0MB)
0.0% used
Perm Generation:
capacity = 67108864 (64.0MB)
used = 21153816 (20.173851013183594MB)
free = 45955048 (43.826148986816406MB)
31.521642208099365% used
[hbase@0321 ~]$ jps
10424 Jps
8229 HRegionServer
[hbase@0321 ~]$ jmap -heap 8229
Attaching to process ID 8229, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.71-b01
using thread-local object allocation.
Garbage-First (G1) GC with 6 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 25769803776 (24576.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 17592186044415 MB
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 83886080 (80.0MB)
G1HeapRegionSize = 8388608 (8.0MB)
Heap Usage:
G1 Heap:
regions = 3072
capacity = 25769803776 (24576.0MB)
used = 20409483264 (19464.0MB)
free = 5360320512 (5112.0MB)
79.19921875% used
G1 Young Generation:
Eden Space:
regions = 89
capacity = 1182793728 (1128.0MB)
used = 746586112 (712.0MB)
free = 436207616 (416.0MB)
63.12056737588652% used
Survivor Space:
regions = 20
capacity = 167772160 (160.0MB)
used = 167772160 (160.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 2324
capacity = 24419237888 (23288.0MB)
used = 19495124992 (18592.0MB)
free = 4924112896 (4696.0MB)
79.83510821023704% used
Perm Generation:
capacity = 50331648 (48.0MB)
used = 42303832 (40.344078063964844MB)
free = 8027816 (7.655921936035156MB)
84.05016263326009% used
關(guān)于大gc停頓時(shí)間
在做minor gc和mixed gc時(shí),收集器會(huì)在內(nèi)存中維系一個(gè)remembered set,這個(gè)set包含了heap中所有對(duì)象的引用,用以確定哪些可以被回收。
每次gc時(shí),g1會(huì)通過(guò)一個(gè)預(yù)測(cè)模型來(lái)計(jì)算每個(gè)region進(jìn)行回收的時(shí)間,從而從中選出停頓時(shí)間在MaxGCPauseMillis之內(nèi)的region進(jìn)行垃圾回收
?
mixed gc是一種既回收young區(qū),也回收old區(qū)的垃圾回收方式,它觸發(fā)的條件是-XX:InitiatingHeapOccupancyPercent,mixed gc的目的就是為了延遲full gc的產(chǎn)生
同理YGC指的是回收young的垃圾回收方式
Full GC 指的是回收Old去的垃圾回收方式,因?yàn)閛ld區(qū)比較大,導(dǎo)致GC時(shí)間比較長(zhǎng),并且在GC期間java進(jìn)程停止對(duì)外相應(yīng),并且自身也不對(duì)外響應(yīng),導(dǎo)致regionserver無(wú)法向zookeeper注冊(cè)心跳信息,超過(guò)zookeeper ( <name>zookeeper.session.timeout</name>) session時(shí)間,就會(huì)被zookeeper置為dead。
待修改的參數(shù),修改GC的參數(shù)需要重啟集群,安排在下次重啟。
-XX:ConcGCThreads=12并發(fā)標(biāo)記的執(zhí)行線程數(shù) =================== 測(cè)試數(shù)據(jù)ConcGCThreads 不能大于-XX:ParallelGCThreads,否則會(huì)報(bào)錯(cuò)
-XX:InitiatingHeapOccupancyPercent=60? 堆占用了多少的時(shí)候就觸發(fā)GC,默認(rèn)為45
-XX:ParallelGCThreads=12 30
[hbase@0321 ~]$ jstat -gccapacity 61540
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
0.0 52428800.0 2490368.0 0.0 294912.0 2195456.0 0.0 52428800.0 44695552.0 44695552.0 16384.0 81920.0 49152.0 49152.0 2 0
[hbase@ 0321 ~]$ jmap -heap 61540
Attaching to process ID 61540, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.71-b01
using thread-local object allocation.
Garbage-First (G1) GC with 30 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 53687091200 (51200.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 17592186044415 MB
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 83886080 (80.0MB)
G1HeapRegionSize = 16777216 (16.0MB)
Heap Usage:
G1 Heap:
regions = 2880
capacity = 48318382080 (46080.0MB)
used = 2519304864 (2402.5963439941406MB)
free = 45799077216 (43677.40365600586MB)
5.213967760403951% used
G1 Young Generation:
Eden Space:
regions = 7
capacity = 2248146944 (2144.0MB)
used = 117440512 (112.0MB)
free = 2130706432 (2032.0MB)
5.223880597014926% used
Survivor Space:
regions = 18
capacity = 301989888 (288.0MB)
used = 301989888 (288.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 126
capacity = 45768245248 (43648.0MB)
used = 2099874464 (2002.5963439941406MB)
free = 43668370784 (41645.40365600586MB)
4.588059805705051% used
Perm Generation:
capacity = 50331648 (48.0MB)
used = 42610464 (40.636505126953125MB)
free = 7721184 (7.363494873046875MB)
84.65938568115234% used
13018 interned Strings occupying 1388240 bytes.
[hbase@0321 ~]$ jstat -gccause -h 10 61540 1000 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 100.00 92.54 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 92.54 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 92.54 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 93.28 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 93.28 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 93.28 20.26 85.06 16 1.794 0 0.000 1.794 G1 Evacuation Pause No GC
0.00 100.00 1.42 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 1.42 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 3.55 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
0.00 100.00 4.26 21.24 85.06 17 1.877 0 0.000 1.877 G1 Evacuation Pause No GC
#jstat -gcutil 27912 1s 50
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
名稱(chēng)欄目:javaGC筆記-創(chuàng)新互聯(lián)
URL鏈接:http://www.chinadenli.net/article2/dsghic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、虛擬主機(jī)、網(wǎng)站建設(shè)、Google、電子商務(wù)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容