【1000个Linux内存知识-015】Linux系统中有哪些系统全局变量可供查看(不断更新)

文章探讨了如何通过全局变量获取系统运行时数据,包括物理页面、网络设备、进程信息等,强调数据流动的重要性,指出gdb、crash、ebpf等工具可用于监测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

不断收集系统全局变量,这些全局变量使用gdb、crash、ebpf等动态监测方式能够快速查看。并且很多命令读取系统信息本质是读取变量,如果获取这些变量,也能从本质上得到系统运行状态。引用一句话:

不要关注程序语言的写法,他们千奇百怪。要关注数据的流动。

因为代码只是用一种形式写表达,本质是数据。

原理与用途

通过全局变量可以拿到运行时数据。比如所有物理页面,所有网络设备,所有进程,每个进程所有VMA,以及不同queue上所有数据。这样全局信息都是一个类似一个展馆展示的大图,一目了然,清晰快速。而且对于分析阅读代码也关系极大。

全局变量

变量变量全称说明gdb命令相关链接备注2
mem_mapstruct page *mem_map所有物理页面page表,index是PFNp mem_mapmore
kmalloc_infostruct kmalloc_info_struct kmalloc_info[]kmalloc cache的slab对象kmem cache名字和大小表p kmalloc_info
kmalloc_cachesstruct kmem_cache *kmalloc_caches[NR_KMALLOC_TYPES][KMALLOC_SHIFT_HIGH + 1]kmalloc cache机制中存储slab对象kmem cache的表,有39个不同size的slab kmem cachep kmalloc_cachesmore
init_netstruct net init_net所有的网卡struct net_device挂载的表p init_netmore
vm_zone_statatomic_long_t vm_zone_stat[NR_VM_ZONE_STAT_ITEMS]tood
vm_numa_statatomic_long_t vm_numa_stat[NR_VM_NUMA_STAT_ITEMS]todo
vm_node_statatomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS]todo

后记

不断收集,能够从本质上动态观测系统运行状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值