在Linux系统里,dmesg 这个命令就像是内核的“日记本”,专门用来记录系统从开机那一刻起,到运行过程中的各种状态信息。对于排查硬件驱动和内存问题,它绝对是个利器。那么,怎么从 dmesg 的输出里捞到这些内存信息呢?其实不难,按这几个步骤来就行。

操作起来其实直截了当:
- 打开终端。 这是所有命令行操作的第一步。
- 执行
dmesg命令。 敲下回车,屏幕上会滚出一大串内核消息。别慌,用上下箭头键慢慢翻看就行。 - 找到内存相关的关键词。 在输出内容里,重点关注那些带
memory、RAM、mem字样的行。举个例子,你大概率会看到类似下面这样的信息:
[0.000000] Memory: 8177848K/8388608K a vailable (8192K kernel code, 1310K rwdata, 4096K rodata, 2252K init, 943K bss, 13840K reserved, 0K cma-reserved)
这条记录的意思是,系统总共有 8388608K(大概8GB)的物理内存。其中,可用的有 8177848K,剩下的部分则被内核代码、数据、只读数据、初始化内存、BSS段、保留内存和CMA预留内存给“瓜分”了。简单说,这就是系统内存的“家底”清单。
- 留意错误或警告。 除了上面那种“总账”信息,
dmesg还会记录内存相关的异常。比如,要是看到Memory cgroup out of memory这样的提示,那就是系统在报警:某个进程想多占点内存,但已经实在挤不出来了。 - 碰到看不懂的怎么办? 如果某条内存消息让你摸不着头脑,最直接的办法就是去翻翻Linux内核的官方文档,或者在网上搜一下。这些资源通常能给出最权威的解释。
总的来说,解读 dmesg 里的内存信息,关键就是抓住那几个关键词,理解它们背后代表的内存分配情况。这样一来,你就能更清楚地掌握系统的内存使用状况,也能在问题苗头出现时,第一时间察觉。