關(guān)于抓java的dump中l(wèi)ive參數(shù)
我們經(jīng)常需要查看內(nèi)存中的一些變量的值,來(lái)定位生產(chǎn)環(huán)境的問(wèn)題。一般會(huì)使用jmap來(lái)抓dump,在抓dump的時(shí)候,我們會(huì)把堆全部扒下來(lái):
jmap -dump:format=b,file=path pid
然后會(huì)生成一個(gè)幾百M(fèi)的包,讓運(yùn)維人員從生產(chǎn)環(huán)境拖下來(lái)再傳給你,然后你用jvisualvm打開(kāi),等你打開(kāi)這個(gè)dump的時(shí)候,看到你想看的內(nèi)存的時(shí)候,基本上半天時(shí)間已經(jīng)過(guò)去了。
其實(shí)我們丟了一個(gè)很重要的參數(shù):live,這個(gè)參數(shù)表示我們需要抓取目前在生命周期內(nèi)的內(nèi)存對(duì)象,也就是說(shuō)GC收不走的對(duì)象,然后我們絕大部分情況下,需要的看的就是這些內(nèi)存。如果我們把這個(gè)參數(shù)加上:
jmap -dump:live,format=b,file=path pid
那么抓下來(lái)的dump會(huì)減少一個(gè)數(shù)量級(jí),在幾十M左右,這樣我們傳輸,打開(kāi)這個(gè)dump的時(shí)間將大大減少,為解決故障贏取了寶貴的時(shí)間。
站長(zhǎng)行業(yè)門戶(http://www.software8.co/wzjs/java/1760.html)文章,希望大家可以留言建議
posted on 2012-12-11 15:58 你爸是李剛 閱讀(1281) 評(píng)論(0) 編輯 收藏