Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Elastic Cloud Server/ Perguntas frequentes/ Disk Management/ Disk Partitions and Virtual Memory/ Por que a memória de um ECS obtido por meio da execução do comando free é inconsistente com a memória real?
Atualizado em 2025-01-23 GMT+08:00

Por que a memória de um ECS obtido por meio da execução do comando free é inconsistente com a memória real?

Sintoma

Depois de criar um ECS, execute o comando free -m para exibir a memória do ECS. A memória do ECS é menor do que a memória configurada durante a criação do ECS.

Por exemplo:

Quando você está criando um ECS, o tamanho da memória configurada é 4194304 KB (4096 MB). Depois que o ECS é criado, execute o comando free -m para ver sua memória. A saída do comando é a seguinte:

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

A memória na saída do comando é 3790 MB, que é menor que os 4096 MB configurados.

Execute o comando dmidecode -t memory para verificar a memória real configurada para o ECS. A saída do comando é a seguinte:

[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

A memória na saída do comando é a mesma configurada durante a criação do ECS.

Possíveis causas

Quando o SO é iniciado, os dispositivos relacionados são inicializados, o que ocupa memória. Além disso, quando o kernel é iniciado, ele também ocupa memória. A memória ocupada pelo kdump pode ser definida. A menos que especificado de outra forma, não altere o tamanho da memória ocupada pelo kdump.

A saída do comando free -m mostra a memória disponível do ECS, e a de dmidecode -t memory mostra a memória do hardware.

Portanto, a memória obtida executando o comando free -m é menor que a memória configurada para o ECS. Este é um fenômeno normal.

Este é um fenômeno normal mesmo para servidores físicos.