0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

coredump信息收集是否也能做到精细化?

Linux阅码场 来源:云巅论剑 作者:品文、肇燕 2021-06-03 09:16 次阅读

继上一篇非典型程序员青囊搞定内存泄露问题后,美美地睡了一觉。睡梦中,突然金光闪闪,万道光芒照进时光隧道,恍惚来到大唐神龙年间。青囊此时化身狄仁杰高级助理,陪同狄老大和元芳及千牛卫来到案发现场,一番勘察后迅速锁定真凶。虽整日伏于桌前写代码,但早被生活驯服得谨小慎微、擅于察言观色的青囊亦早已悟透了这断案的奥秘。只是,站在一旁的元芳眉头紧锁,面露难色。..。..狄公上前问道:元芳,有心事?元芳起身答道:“大人断案如神,只是像长安这种要案频繁的地方,每次案发,都要出动上百千牛卫来大面积封锁现场,走访上万群众,耗费人力不说,还严重阻塞交通,影响了正常的生产秩序,导致其它业务部门受损,一直以来是怨声载道啊。”狄公笑了笑,手指向青囊,“囊啊,给你元芳哥show一下”。

青囊一阵马屁之后,从袋中摸出一罗盘,得意道:“我这乾坤袋唤做sysAk,这罗盘叫minicoredump,以后如何封锁现场,看它就清楚了”。元芳接过罗盘,顺手摆弄了几下,上面显示要封锁的现场缩小了不少,官道也畅通许多。元芳脸色忧转喜,不禁问道:有此利器,锁定现场无忧矣!只是它是怎么做到的,还请大人示教一下。狄公哈哈大笑:“不急,且听我慢慢道来”。

什么是coredump?

coredump 顾名思义,就是核心转储。我们的程序在运行过程中,如果发生了异常退出,光靠程序自身log往往是很难定位问题根因的。操作系统提供了一套coredump机制,在异常发生的时候,将进程现场的vma信息存储到core文件中去。利用这个文件,就能够恢复异常现场的信息,定位人员可以从中获取到变量值、栈信息、内存数据,程序异常时的运行位置(甚至记录代码行号)等等,提高问题定位效率。

就像断案最关键的步骤就是去获取第一手信息,还原案发现场,在此基础上进行案件推演。那么,coredump的流程是什么样子的呢?当进程发生故障的时候,内核就会启动coredump机制将故障现场的vma等信息转储成core文件。故障过后,利用gdb加载coredump文件来还原故障现场。通过获取故障现场变量值、调用栈等信息,可以快速确定故障类型,锁定故障代码位置,找到根因。就像狄公每次一次断案,都要先锁定发现场,然后亲自勘查,提取所有物证和证言,结合现场信息推演,还原案发经过,最终锁定作案元凶。coredump资源消耗问题操作系统在内核态生成core文件,是要将进程的有效vma信息全量dump出来。这就意味着大进程的coredump文件会非常庞大,甚至可以达到TB级别。这类大文件在生成和保存过程中严重消耗了IO、CPU、内存带宽等资源,对系统的稳定性带来冲击。就像之前要侦破一起大案,需要封锁方圆数公里内交通,动用数百警力做大量的摸排走访工作。但随着技术手段革新,收集信息也更准确,摸排手段也越来越精细化。

同样的,coredump信息收集是否也能做到精细化?minicoredump登场“元芳啊,定位问题,就像咱们天天去断案一样,走访的关键是要先收集到高价值的线索,比如栈空间、data、bss等。其它的匿名页信息,像堆空间,里面的数据虽然很重要,但是对于断案来说大多情况下用不到,属于低线索信息。而在大进程的vma信息中,低线索信息占比还非常高。因此,我们要有选择、有目标地收集。这个时候,就该minicoredump登场了,将现场信息先筛选一遍。

工作量优化了不说,对正常生产影响也可以降到最小。”青囊在一旁,钦佩地望着狄老大,默默地把minicoredump收录到sysAK里。这里面不仅有内存泄漏定位秘籍,网络诊断利器,如今还有minicoredump加持,还可以有效地过滤过滤匿名页信息,对core文件进行瘦身,妙哉妙哉!举个栗子如下表所示,这个是一个典型的案发现场信息分布。minicoredump会针对性地进行收集:标红的区间需要收集起来,借助于gdb,就可以帮我们将案发过程回放(打调用栈)和关键物证提取(获取栈上变量、全局变量等信息),而标绿的区域可以在必要的时候再收集,不影响我们断案。

103249: 。/main0000000000400000 4K r-x-- main0000000000600000

4K r---- main0000000000601000 4K rw--- main #可执行文件的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

实际表现该要拿真实数据说话:我们挑了一个真实的环境对比。同样的进程coredump,文件大小从3.5G下降到了1.9G。coredump空间缩小后,不影响推栈等功能。

在更为复杂的生产环境,实际优化幅度可以达到80%以上,业务抖动下降了30%。

换句话说,在引用了新技术以后,封锁量减少,交通也就更顺畅了。狄公问:元芳,此法可好?元芳连连点头,啧啧称赞:minicoredump神也神也,狄公了不得、了不得啊!作为高级助理的青囊,站在一旁,用衣袖一遍一遍擦拭罗盘,心里也乐开了花。半年后,狄公和元芳一行在清理大理寺档案库房,眼前已然不是堆叠成山的卷宗。得益于变薄的新卷宗,还腾挪出了一方天地,品茶说案,心旷神怡。狄公戏问——在一旁的青囊正要开心,突然斥候送来一份搪报,狄公拆开看了,说道:官道上刚出了桩大案,影响甚大,我们要马上出发。青囊一惊,从梦中醒来,寻思着:官道?难道是新出了网络问题。欲知后事如何,且听下回分解。

原文标题:coredump 瘦身风云

文章出处:【微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    2998

    浏览量

    73881

原文标题:coredump 瘦身风云

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    海康威视如何助力交通精细化治理

    近日,“城市道路交通精细化治理探索与实践论坛”在宁波圆满落幕。公安部道路交通安全研究中心主任、中国道路交通安全协会会长王长君,浙江省公安厅党委委员、副厅长张飞军,宁波市人民政府副市长、宁波市公安局党委书记、局长王顺大出席论坛并致辞。
    的头像 发表于 11-09 10:45 341次阅读

    LMP2231性能好的PSRR能做到多少?

    请教下TI的功放的性能好的PSRR能做到多少?还有我们的闭环功放是不是对PSRR要求不是很高?
    发表于 11-01 08:31

    分布式故障定位监测装置 行波定位原理 精细化辨识 告警机制

    分布式故障定位监测装置|行波定位原理|精细化辨识|告警机制 输电线路故障的原因多种多样,这些原因可以大致分为自然环境因素、设备自身因素、人为因素以及其他不可预见因素。以下是详细的故障原因分析: 一
    的头像 发表于 10-21 09:27 186次阅读

    软通动力推动韶关市精细化工产业数字化转型

    工业和信息化局指导,广东省涂料与油墨行业协会、广东省涂料行业数字化产业联盟主办,韶关市工信局相关领导、广东省涂料行业数字化产业联盟及韶关地区会员企业代表、相关精细化工企业代表齐聚一堂,深入探讨如何以数字
    的头像 发表于 09-25 17:02 446次阅读

    智慧农业新篇章:实时监测与精细化管理

    智慧农业,作为现代农业技术革命的先锋,正引领着一场深刻的产业变革。它通过融合物联网、大数据、人工智能等前沿科技,实现了对农业生产环境的实时监测与精细化管理,开启了农业发展的新篇章。这一转型不仅提升
    的头像 发表于 08-13 17:10 303次阅读
    智慧农业新篇章:实时监测与<b class='flag-5'>精细化</b>管理

    汽车软件开发中的功能安全挑战与应对策略:基于Jira平台构建端到端的可追溯性,实现精细化需求管理

    ,以及如何借助先进的项目管理平台Jira,实现精细化需求管理等方面的经验与见解。 以下为演讲实录(内容有精简润色)。 大家好,我是叶燕秀,我与我的同事景玉鑫一同来自上海龙智数码科技股份有限公司。龙智已深耕DevSecOps领域超过十年,我们与众多产品生命周期管理
    的头像 发表于 07-29 15:02 260次阅读
    汽车软件开发中的功能安全挑战与应对策略:基于Jira平台构建端到端的可追溯性,实现<b class='flag-5'>精细化</b>需求管理

    润和软件作为首席战略伙伴协办首届京沪苏医院建设与后勤精细化管理高质量论坛

    日前,在国家医院高质量发展指导方针的引领下,首届 京沪苏医院建设与后勤精细化管理高质量论坛 在南京圆满举办。江苏润和软件股份有限公司(以下简称“润和软件”)作为本次论坛的首席战略伙伴,与合作方北京享
    的头像 发表于 07-22 16:50 1761次阅读

    精准追踪数字化装备场信息:RFID单装信息卡实测

    数字化装备场使用RFID单装信息卡可以显著提升装备管理的效率与准确性、实现装备信息的实时更新与同步、增强装备管理的安全性与可靠性,并推动装备管理的智能化与精细化发展。
    的头像 发表于 07-18 09:52 285次阅读
    精准追踪数字化装备场<b class='flag-5'>信息</b>:RFID单装<b class='flag-5'>信息</b>卡实测

    综合管廊精细化节能系统设计与实施

    的基础数据,利用建立的能耗统计数据库、管廊能耗评价指标体系,研发一套管廊精细化节能诊断系统,主要目标是实现对综合管廊能耗精细化分析,节约地下综合管廊运维过程中的能耗,为运维管理人员提供决策支持、节能诊断和运行策
    的头像 发表于 06-19 16:31 323次阅读
    综合管廊<b class='flag-5'>精细化</b>节能系统设计与实施

    浅聊综合管廊精细化节能系统设计与实施

    的基础数据,利用建立的能耗统计数据库、管廊能耗评价指标体系,研发一套管廊精细化节能诊断系统,主要目标是实现对综合管廊能耗精细化分析,节约地下综合管廊运维过程中的能耗,为运维管理人员提供决策支持、节能诊断和运行策
    的头像 发表于 05-28 13:17 272次阅读
    浅聊综合管廊<b class='flag-5'>精细化</b>节能系统设计与实施

    数据中心配电能效精细化建设策略研究与趋势分析

    数据中心配电能效精细化建设策略研究与趋势分析 张颖姣 安科瑞电气股份有限公司  上海嘉定  201801 摘要:通过分析用户需求、建设和运维等多方对数据中心建设的要求;结合国家政策、数据中心发展趋势
    的头像 发表于 03-11 17:00 348次阅读
    数据中心配电能效<b class='flag-5'>精细化</b>建设策略研究与趋势分析

    低功耗DC-DC电源模块的精细化PCB设计

    转换器并不容易。布局、电磁兼容性、电流和散热管理等方面均需深思熟虑和精细调整。为优化供电性能,开关电源应靠近芯片放置,避免输出线过长导致压降。为降低电磁干扰,避免在开关电源周围布置敏感元器件。为增强稳定性
    发表于 01-24 09:58

    低功耗DC-DC电源模块的精细化PCB设计

    转换器并不容易。布局、电磁兼容性、电流和散热管理等方面均需深思熟虑和精细调整。 为优化供电性能,开关电源应靠近芯片放置,避免输出线过长导致压降。为降低电磁干扰,避免在开关电源周围布置敏感元器件。为增强
    发表于 01-19 15:11

    牛!低功耗DC-DC电源模块的精细化PCB设计

    转换器并不容易。布局、电磁兼容性、电流和散热管理等方面均需深思熟虑和精细调整。 为优化供电性能,开关电源应靠近芯片放置,避免输出线过长导致压降。为降低电磁干扰,避免在开关电源周围布置敏感元器件。为增强
    发表于 01-19 15:05

    牛!低功耗DC-DC电源模块的精细化PCB设计

    转换器并不容易。布局、电磁兼容性、电流和散热管理等方面均需深思熟虑和精细调整。 为优化供电性能,开关电源应靠近芯片放置,避免输出线过长导致压降。为降低电磁干扰,避免在开关电源周围布置敏感元器件。为增强
    发表于 01-16 17:09