使用free命令查看彈性云主機的內存,為什么與實際不符?
更新時間 2023-09-07 16:52:44
最近更新時間: 2023-09-07 16:52:44
分享文章
本文主要介紹使用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命令查詢到的內存大小比實際的要小一些,屬于正常情況,非問題。
說明
物理機同樣存在該問題。