crash+awk:统计vma的大小

简介: crash+awk:统计vma的大小

正常的vm命令输出:

crash_new> vm
PID: 2380     TASK: ffffff88414bddc0  CPU: 5    COMMAND: "xxx"
       MM               PGD          RSS    TOTAL_VM
ffffff880a997c00  ffffff8825747000  16565804k  44535380k
      VMA           START       END     FLAGS FILE
ffffff8801f09258 5eef950000 5eef97b000     71 /vendor/bin/bdo
ffffff8801f09e10 5eef97b000 5eef9d9000     75 /vendor/bin/bdo
ffffff8801f09bb8 5eef9d9000 5eef9df000 100071 /vendor/bin/bdo
ffffff8801f09320 5eef9df000 5eef9e0000 100073 /vendor/bin/bdo
ffffff881552eed8 5eefa40000 5eefa43000 100073 /vendor/bin/bdo
ffffff8a7bc51bb8 74df600000 7e65e00000 100073
ffffff8a8f24abb8 7e65f08000 7ee3b08000 100073
ffffff8a82ec3578 7ee3b08000 7eea008000 100073
ffffff8024f17898 7eea008000 7eeab92000     70
ffffff8829eb5708 7eeab92000 7eeab94000 100073
ffffff8024f17a28 7eeab94000 7eeb296000     70
ffffff8801e5c4b0 7eeb296000 7eeb298000 100073
ffffff8829eb5898 7eeb298000 7eec132000     70
ffffff8826be2708 7eec132000 7eec134000 100073
ffffff8801e5c000 7eec134000 7eed612000     70
ffffff882575ca28 7eed612000 7eed614000 100073
ffffff881e308898 7eed614000 7eee57a000     70
ffffff882575c960 7eee57a000 7eee57c000 100073
ffffff881df37e10 7eee57c000 7eef008000     70
ffffff8801e5c190 7eef008000 7eef009000 200070
ffffff8801e5ce10 7eef009000 7eef105000 200073
ffffff8801e5cbb8 7eef105000 7eef107000 200070
ffffff882592b3e8 7eef107000 7eef203000 200073
ffffff8801e5c708 7eef203000 7eef205000 200070
ffffff882592b0c8 7eef205000 7eef301000 200073
ffffff882592b000 7eef301000 7eef303000 200070
ffffff880a27d7d0 7eef303000 7eef3ff000 200073
ffffff882592b578 7eef3ff000 7eef400000 200070
ffffff88299e13e8 7eef400000 7eefe00000 100073
ffffff882654f708 7eefe08000 7eefe09000 200070
...

有个需求,我想统计覆盖的虚拟地址最大的几个vma。

可以参考下面的命令:

vm | awk 'NR>=5 {vmas[$1]=strtonum("0x"$3)-strtonum("0x"$2)} END {for (vma in vmas) {printf "%s %x MB\n", vma, vmas[vma]/1024/1024}}' | sort -n  -k 2

这里用到的awk工具,其中由于vm列出的地址范围是按16进制输出的,所以需要使用strtonum先转换为10进制,然后再做减法。

当找到范围最大的vma后,可以使用下面的方法来统计这个vma实际消耗的物理页:

vm -P ffffff8a7bc51bb8 | awk 'NR>=5' | grep -v "SWAP" | grep -v "mapped" | wc -l

正常来说,每一行对应的物理页,知道了行数,也就可以很容易得到占用的物理内存大小。

相关文章
|
12月前
|
机器学习/深度学习 人工智能 算法
AI框架的赢者法则:生态繁荣的昇思MindSpore,成为大模型时代的新选择
2024年被视为大模型应用的元年。昇思MindSpore AI框架凭借其强大的开源社区和技术创新,在全球范围内迅速崛起。截至2024年11月,该框架的下载量已超过1100万次,覆盖130多个国家和地区的2400多个城市,拥有3.7万名贡献者。昇思MindSpore不仅在人才培养和社区治理方面表现出色,还在大模型的开发、训练和应用中发挥了关键作用,支持了50多个主流大模型,覆盖15个行业。随着其市场份额预计达到30%,昇思MindSpore正逐步成为行业共识,推动大模型在各领域的广泛应用。
362 12
|
人工智能 JSON 数据管理
ShowUI:新加坡国立联合微软推出用于 GUI 自动化的视觉-语言-操作模型
ShowUI是由新加坡国立大学Show Lab和微软联合推出的视觉-语言-行动模型,旨在提升图形用户界面(GUI)助手的效率。该模型通过UI引导的视觉令牌选择和交错视觉-语言-行动流,有效减少计算成本并提高训练效率。ShowUI在小规模高质量数据集上表现出色,展现出在GUI自动化领域的潜力。
363 4
ShowUI:新加坡国立联合微软推出用于 GUI 自动化的视觉-语言-操作模型
|
JSON API 数据库
电商拍立淘按图搜索API接口,数据格式示例
电商拍立淘按图搜索API接口系列为电商平台和购物应用提供了强大的图像搜索功能,以下是其文档说明的详细参考
|
自然语言处理 数据可视化 PyTorch
双卡3090消费级显卡推理微调OpenBuddy-LLaMA2-70B最佳实践
9月4日,OpenBuddy发布700亿参数跨语言大模型 OpenBuddy-LLaMA2-70B,并以可商用的形态全面开源!现在已经全面上架魔搭ModelScope社区。
双卡3090消费级显卡推理微调OpenBuddy-LLaMA2-70B最佳实践
|
机器学习/深度学习 人工智能 算法
编织人工智能:机器学习发展历史与关键技术全解析
关注TechLead,分享AI领域与云服务领域全维度开发技术。本文全面回顾了机器学习的发展历史,从早期的基本算法到当代的深度学习模型,再到未来的可解释AI和伦理考虑。文章深入探讨了各个时期的关键技术和理念,揭示了机器学习在不同领域的广泛应用和潜力。最后,总结部分强调了机器学习作为一种思维方式和解决问题的工具,呼吁所有参与者共同探索更智能、更可持续的未来,同时关注其潜在的伦理和社会影响。
1567 0
|
Java 定位技术
【Java】推箱子小游戏(带背景音乐)完整代码
【Java】推箱子小游戏(带背景音乐)完整代码
952 0
电脑蓝屏怎么查看错误出在哪——Windows系统日志
电脑蓝屏怎么查看错误出在哪——Windows系统日志
|
机器学习/深度学习 传感器 数据采集
多模态生理信号情感识别 附代码+报告
多模态生理信号情感识别 附代码+报告
1207 0
多模态生理信号情感识别 附代码+报告
|
图形学 UED
CDR2023下载激活教程CorelDRAW最新版本
CorelDRAW Graphics Suite2023涵盖了全部CorelDRAW图形处理组件,是一款智能高效的平面设计软件,广泛应用于排版印刷、矢量图形编辑及网页设计等领域,30多年来无数优秀的设计师通过CorelDRAW大胆展现真我,交付了出众的创意作品!目前已经有众多业内人士和爱好者在使用CorelDRAW Graphics Suite,本文将告诉大家如何安装和激活CorelDRAW Graphics Suite。
3372 0