一、问题说明
修订前版本 |
修订内容 |
完成日期 |
修订人 |
修订后版本 |
V0.1 |
创建 |
2023.6.29 |
李刚 |
V1.0 |
客户反馈centos系统下free命令查看内存时不一致
另一台:
二、处理办法
无需处理,正常情况
三、产生原因
系统下用free命令看到的内存信息,MemTotal表示系统可用总内存,会比实际物理内存值小,这是因为操作系统没有将给PCI资源的预留内存作为用户可用内存计算在内,还有硬件驱动,内核等都包括在kernel初始化时使用的内存,也未计算到可用内存中,这部分内存统称为预留(reserved)内存;
预留内存在不同硬件的主机,或不同操作系统下,预留值不一样,在系统启动日志dmesg或messages中,可看到类似如下打印出保留内存大小的详细信息:
Memory: 3789320k/4915200k available (6243k kernel code, 795332k absent, 330548k reserved, 4180k data, 1604k init)
Reserved内存主要包括initrd(引导完成后会释放)及kernel代码占用 (kernel),kernel数据占用(data),初始化代码占用 (init),及bios在e820 map中保留的hardware/firmware空间,在这个过程中会由于内存寻址或页表等处理,内核使用的空间是动态变化的,甚至在同一台机器的多次重启过程中,每次重启时出现少部分内存的使用偏差,都属于正常现象