Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Elastic Cloud Server/ Preguntas frecuentes/ Disk Management/ Disk Partitions and Virtual Memory/ ¿Por qué la memoria de un ECS obtenida ejecutando el comando free es incompatible con la memoria real?
Actualización más reciente 2023-08-08 GMT+08:00

¿Por qué la memoria de un ECS obtenida ejecutando el comando free es incompatible con la memoria real?

Síntomas

Después de crear un ECS, se ejecuta el comando free -m para ver la memoria del ECS. La memoria de ECS es menor que la memoria configurada durante la creación de ECS.

Un ejemplo es el siguiente:

Por ejemplo, puede configurar la memoria como KB de 4,194,304 (4,096 MB) al crear el ECS. Una vez creado el ECS, ejecute el comando free -m para ver su memoria. El resultado del comando es el siguiente:

[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 3790 167 3474 8 147 3414
Swap: 1022 0 1022

La memoria en la salida del comando es de 3790 MB, que es menor que los 4096 MB configurados.

Ejecute el comando dmidecode -t memory para comprobar la memoria actual configurada para el ECS. El resultado del comando es el siguiente:

[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

La memoria en la salida del comando es la misma que la configurada durante la creación de ECS.

Causas posibles

Cuando se inicia el SO, se inicializan los dispositivos relacionados, que ocupan la memoria. Además, cuando se inicia el núcleo, también ocupa memoria. La memoria ocupada por kdump se puede ajustar. A menos que se especifique lo contrario, no cambie el tamaño de memoria ocupado por kdump.

La salida del comando free -m muestra la memoria disponible del ECS y la de dmidecode -t memory muestra la memoria del hardware.

Por lo tanto, la memoria obtenida ejecutando el comando free -m es menor que la memoria configurada para el ECS. Esto es normal.

Este es un fenómeno normal incluso para los servidores físicos.