更新时间:2024-09-30 GMT+08:00
使用free命令查看弹性云服务器的内存,为什么与实际不符?
问题描述
弹性云服务器创建成功后,使用free -m命令查询内存大小,查询结果与实际配置不符,较之创建时的配置要小一些。
示例:
假设创建该弹性云服务器时,配置的实际内存大小为4194304KB(即4096MB)。创建完成后,使用free -m命令查询内存大小,回显如下:
[root@localhost ~]# free -m total used free shared buff/cache available Mem: 3790 167 3474 8 147 3414 Swap: 1022 0 1022
可以看到内存只有3790MB,小于实际的4096MB。
但是使用dmidecode -t memory命令查看实际的硬件内存大小时,回显如下:
[root@localhost ~]# dmidecode -t memory # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x1000, DMI type 16, 23 bytes Physical Memory Array Location: Other Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 4 GB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x1100, DMI type 17, 40 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: Unknown Data Width: Unknown Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: Other Speed: Unknown Manufacturer: QEMU Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Rank: Unknown Configured Clock Speed: Unknown Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: Unknown
可以看到使用dmidecode -t memory查看的内存大小与实际配置一致。
问题原因
首先,系统启动时会初始化相关设备,该过程会占用内存,内核启动时,也会占用一部分的内存。其中,kdump占用的内存是可以自行设置的,如无特殊要求,请勿自行修改kdump占用的内存大小。
其次,free -m命令查询的是弹性云服务器的可用内存,dmidecode -t memory命令查询的是实际硬件内存大小。
因此,使用free -m命令查询到的内存大小比实际的要小一些,属于正常情况,非问题。
物理机同样存在该问题。
父主题: ECS故障