繼上一篇非典型程序員青囊搞定內(nèi)存泄露問(wèn)題后,美美地睡了一覺(jué)。睡夢(mèng)中,突然金光閃閃,萬(wàn)道光芒照進(jìn)時(shí)光隧道,恍惚來(lái)到大唐神龍年間。青囊此時(shí)化身狄仁杰高級(jí)助理,陪同狄老大和元芳及千牛衛(wèi)來(lái)到案發(fā)現(xiàn)場(chǎng),一番勘察后迅速鎖定真兇。雖整日伏于桌前寫(xiě)代碼,但早被生活馴服得謹(jǐn)小慎微、擅于察言觀色的青囊亦早已悟透了這斷案的奧秘。只是,站在一旁的元芳眉頭緊鎖,面露難色。..。..狄公上前問(wèn)道:元芳,有心事?元芳起身答道:“大人斷案如神,只是像長(zhǎng)安這種要案頻繁的地方,每次案發(fā),都要出動(dòng)上百千牛衛(wèi)來(lái)大面積封鎖現(xiàn)場(chǎng),走訪上萬(wàn)群眾,耗費(fèi)人力不說(shuō),還嚴(yán)重阻塞交通,影響了正常的生產(chǎn)秩序,導(dǎo)致其它業(yè)務(wù)部門(mén)受損,一直以來(lái)是怨聲載道啊。”狄公笑了笑,手指向青囊,“囊啊,給你元芳哥show一下”。
青囊一陣馬屁之后,從袋中摸出一羅盤(pán),得意道:“我這乾坤袋喚做sysAk,這羅盤(pán)叫minicoredump,以后如何封鎖現(xiàn)場(chǎng),看它就清楚了”。元芳接過(guò)羅盤(pán),順手?jǐn)[弄了幾下,上面顯示要封鎖的現(xiàn)場(chǎng)縮小了不少,官道也暢通許多。元芳臉色憂轉(zhuǎn)喜,不禁問(wèn)道:有此利器,鎖定現(xiàn)場(chǎng)無(wú)憂矣!只是它是怎么做到的,還請(qǐng)大人示教一下。狄公哈哈大笑:“不急,且聽(tīng)我慢慢道來(lái)”。
什么是coredump?
coredump 顧名思義,就是核心轉(zhuǎn)儲(chǔ)。我們的程序在運(yùn)行過(guò)程中,如果發(fā)生了異常退出,光靠程序自身log往往是很難定位問(wèn)題根因的。操作系統(tǒng)提供了一套coredump機(jī)制,在異常發(fā)生的時(shí)候,將進(jìn)程現(xiàn)場(chǎng)的vma信息存儲(chǔ)到core文件中去。利用這個(gè)文件,就能夠恢復(fù)異常現(xiàn)場(chǎng)的信息,定位人員可以從中獲取到變量值、棧信息、內(nèi)存數(shù)據(jù),程序異常時(shí)的運(yùn)行位置(甚至記錄代碼行號(hào))等等,提高問(wèn)題定位效率。
就像斷案最關(guān)鍵的步驟就是去獲取第一手信息,還原案發(fā)現(xiàn)場(chǎng),在此基礎(chǔ)上進(jìn)行案件推演。那么,coredump的流程是什么樣子的呢?當(dāng)進(jìn)程發(fā)生故障的時(shí)候,內(nèi)核就會(huì)啟動(dòng)coredump機(jī)制將故障現(xiàn)場(chǎng)的vma等信息轉(zhuǎn)儲(chǔ)成core文件。故障過(guò)后,利用gdb加載coredump文件來(lái)還原故障現(xiàn)場(chǎng)。通過(guò)獲取故障現(xiàn)場(chǎng)變量值、調(diào)用棧等信息,可以快速確定故障類型,鎖定故障代碼位置,找到根因。就像狄公每次一次斷案,都要先鎖定發(fā)現(xiàn)場(chǎng),然后親自勘查,提取所有物證和證言,結(jié)合現(xiàn)場(chǎng)信息推演,還原案發(fā)經(jīng)過(guò),最終鎖定作案元兇。coredump資源消耗問(wèn)題操作系統(tǒng)在內(nèi)核態(tài)生成core文件,是要將進(jìn)程的有效vma信息全量dump出來(lái)。這就意味著大進(jìn)程的coredump文件會(huì)非常龐大,甚至可以達(dá)到TB級(jí)別。這類大文件在生成和保存過(guò)程中嚴(yán)重消耗了IO、CPU、內(nèi)存帶寬等資源,對(duì)系統(tǒng)的穩(wěn)定性帶來(lái)沖擊。就像之前要偵破一起大案,需要封鎖方圓數(shù)公里內(nèi)交通,動(dòng)用數(shù)百警力做大量的摸排走訪工作。但隨著技術(shù)手段革新,收集信息也更準(zhǔn)確,摸排手段也越來(lái)越精細(xì)化。
同樣的,coredump信息收集是否也能做到精細(xì)化?minicoredump登場(chǎng)“元芳啊,定位問(wèn)題,就像咱們天天去斷案一樣,走訪的關(guān)鍵是要先收集到高價(jià)值的線索,比如棧空間、data、bss等。其它的匿名頁(yè)信息,像堆空間,里面的數(shù)據(jù)雖然很重要,但是對(duì)于斷案來(lái)說(shuō)大多情況下用不到,屬于低線索信息。而在大進(jìn)程的vma信息中,低線索信息占比還非常高。因此,我們要有選擇、有目標(biāo)地收集。這個(gè)時(shí)候,就該minicoredump登場(chǎng)了,將現(xiàn)場(chǎng)信息先篩選一遍。
工作量?jī)?yōu)化了不說(shuō),對(duì)正常生產(chǎn)影響也可以降到最小。”青囊在一旁,欽佩地望著狄老大,默默地把minicoredump收錄到sysAK里。這里面不僅有內(nèi)存泄漏定位秘籍,網(wǎng)絡(luò)診斷利器,如今還有minicoredump加持,還可以有效地過(guò)濾過(guò)濾匿名頁(yè)信息,對(duì)core文件進(jìn)行瘦身,妙哉妙哉!舉個(gè)栗子如下表所示,這個(gè)是一個(gè)典型的案發(fā)現(xiàn)場(chǎng)信息分布。minicoredump會(huì)針對(duì)性地進(jìn)行收集:標(biāo)紅的區(qū)間需要收集起來(lái),借助于gdb,就可以幫我們將案發(fā)過(guò)程回放(打調(diào)用棧)和關(guān)鍵物證提取(獲取棧上變量、全局變量等信息),而標(biāo)綠的區(qū)域可以在必要的時(shí)候再收集,不影響我們斷案。
103249: 。/main0000000000400000 4K r-x-- main0000000000600000
4K r---- main0000000000601000 4K rw--- main #可執(zhí)行文件的data段
0000000001fa5000 132K rw--- [ anon ] #堆空間00007f8188000000 10372K rw--- [ anon ]
00007f8188a21000 55164K ----- [ anon ]
00007f8190000000 10372K rw--- [ anon ]……00007f819ca21000 55164K ----- [ anon ]00007f81a0000000 10372K rw--- [ anon ]00007f81a0a21000 55164K ----- [ anon ]00007f81a495d000
4K ----- [ anon ]00007f81a495e000 8192K rw--- [ anon ] #棧空間00007f81a6dfe000 10244K rw--- [ anon ]00007f81a77ff000
4K ----- [ anon ]00007f81a7800000 8192K rw--- [ anon ]00007f81a8000000 10372K rw--- [ anon ]00007f81a8a21000 55164K ----- [ anon ]00007f81ac15c000
4K ----- [ anon ]00007f81ac15d000 8192K rw--- [ anon ]00007f81ac95d000
4K ----- [ anon ]00007f81ac95e000 8192K rw--- [ anon ]……00007f81ae160000
4K ----- [ anon ]00007f81ae161000 8192K rw--- [ anon ]00007f81ae961000 1808K r-x-- libc-2.17.so00007f81aeb25000 2044K ----- libc-2.17.so00007f81aed24000
16K r---- libc-2.17.so00007f81aed28000 8K rw--- libc-2.17.so #so data段00007f81aed2a000 20K rw--- [ anon ] #so BSS段00007f81aed2f000
92K r-x-- libpthread-2.17.so00007f81aed46000 2044K ----- libpthread-2.17.so00007f81aef45000
4K r---- libpthread-2.17.so00007f81aef46000
4K rw--- libpthread-2.17.so00007f81aef47000
16K rw--- [ anon ]00007f81aef4b000
136K r-x-- ld-2.17.so00007f81af159000
12K rw--- [ anon ] #so link map00007f81af169000 12K rw--- [ anon ]00007f81af16c000
4K r---- ld-2.17.so00007f81af16d000
4K rw--- ld-2.17.so00007f81af16e000
4K rw--- [ anon ]00007fff7eafc000
132K rw--- [ stack ]00007fff7eb58000
8K r---- [ anon ]00007fff7eb5a000
8K r-x-- [ anon ]ffffffffff600000
4K r-x-- [ anon ] #syscalltotal 532892K
實(shí)際表現(xiàn)該要拿真實(shí)數(shù)據(jù)說(shuō)話:我們挑了一個(gè)真實(shí)的環(huán)境對(duì)比。同樣的進(jìn)程coredump,文件大小從3.5G下降到了1.9G。coredump空間縮小后,不影響推棧等功能。
在更為復(fù)雜的生產(chǎn)環(huán)境,實(shí)際優(yōu)化幅度可以達(dá)到80%以上,業(yè)務(wù)抖動(dòng)下降了30%。
換句話說(shuō),在引用了新技術(shù)以后,封鎖量減少,交通也就更順暢了。狄公問(wèn):元芳,此法可好?元芳連連點(diǎn)頭,嘖嘖稱贊:minicoredump神也神也,狄公了不得、了不得啊!作為高級(jí)助理的青囊,站在一旁,用衣袖一遍一遍擦拭羅盤(pán),心里也樂(lè)開(kāi)了花。半年后,狄公和元芳一行在清理大理寺檔案庫(kù)房,眼前已然不是堆疊成山的卷宗。得益于變薄的新卷宗,還騰挪出了一方天地,品茶說(shuō)案,心曠神怡。狄公戲問(wèn)——在一旁的青囊正要開(kāi)心,突然斥候送來(lái)一份搪報(bào),狄公拆開(kāi)看了,說(shuō)道:官道上剛出了樁大案,影響甚大,我們要馬上出發(fā)。青囊一驚,從夢(mèng)中醒來(lái),尋思著:官道?難道是新出了網(wǎng)絡(luò)問(wèn)題。欲知后事如何,且聽(tīng)下回分解。
原文標(biāo)題:coredump 瘦身風(fēng)云
文章出處:【微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3074瀏覽量
74460
原文標(biāo)題:coredump 瘦身風(fēng)云
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
科技領(lǐng)航,民兵裝備管理系統(tǒng)開(kāi)啟精細(xì)化管理新時(shí)代

多普勒超聲波流量計(jì):助力市政排水管網(wǎng)實(shí)現(xiàn)精細(xì)化管理

高精度灌區(qū)信息化管理系統(tǒng):基于傳感技術(shù)實(shí)現(xiàn)精細(xì)化管理

大型農(nóng)田灌區(qū)信息化管理監(jiān)測(cè)系統(tǒng)方案

漫途能耗監(jiān)測(cè)系統(tǒng),助力建筑行業(yè)實(shí)現(xiàn)能源精細(xì)化管理!

軟通動(dòng)力發(fā)起精細(xì)化工與新材料行業(yè)產(chǎn)業(yè)鏈數(shù)字化轉(zhuǎn)型生態(tài)聯(lián)合體

海康威視如何助力交通精細(xì)化治理
分布式故障定位監(jiān)測(cè)裝置 行波定位原理 精細(xì)化辨識(shí) 告警機(jī)制
軟通動(dòng)力推動(dòng)韶關(guān)市精細(xì)化工產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型
智慧農(nóng)業(yè)新篇章:實(shí)時(shí)監(jiān)測(cè)與精細(xì)化管理

汽車(chē)軟件開(kāi)發(fā)中的功能安全挑戰(zhàn)與應(yīng)對(duì)策略:基于Jira平臺(tái)構(gòu)建端到端的可追溯性,實(shí)現(xiàn)精細(xì)化需求管理

精準(zhǔn)追蹤數(shù)字化裝備場(chǎng)信息:RFID單裝信息卡實(shí)測(cè)

綜合管廊精細(xì)化節(jié)能系統(tǒng)設(shè)計(jì)與實(shí)施

淺聊綜合管廊精細(xì)化節(jié)能系統(tǒng)設(shè)計(jì)與實(shí)施

數(shù)據(jù)中心配電能效精細(xì)化建設(shè)策略研究與趨勢(shì)分析

評(píng)論