lsmem과 free가 다른 총 메모리를 표시하는 이유는 무엇입니까?

lsmem과 free가 다른 총 메모리를 표시하는 이유는 무엇입니까?

CentOS 7 시스템을 사용하고 있는데 문제가 발생했습니다.

을 사용하면 lsmem --summary다음을 얻습니다.

Memory block size:       128M
Total online memory:       8G
Total offline memory:      0B

을 사용하면 free -h다음을 얻습니다.

              total        used        free      shared  buff/cache   available
Mem:           7.6G        850M        1.7G        361M        5.1G        6.1G
Swap:          7.7G          0B        7.7G

동일한 시스템에서 총 메모리가 다른 이유는 무엇입니까?

이 두 명령의 차이점은 무엇입니까?

답변1

lsmem메모리 블록과 해당 상태를 나열합니다. 이는 물리적 메모리를 반영하며 메모리 블록으로 계산됩니다.시스템에는 128MiB가 있습니다. 이를 수행하려면 lsmem커널에서 제공하는 정보를 읽으십시오 /sys/devices/system/memory. 시스템에서 커널은 64개의 메모리 블록(총 8GiB)을 추적합니다.

free시스템에서 사용할 수 있는 메모리를 나열합니다. "총계"는 물리적 메모리의 양에서 시스템에 의해 예약된 메모리(주로 펌웨어 목적으로)와 커널의 실행 코드를 뺀 값입니다. free이 정보를 읽으십시오/proc/meminfo.

출력의 차이는 측정값의 차이로 설명될 수 있습니다. 모든 경우에 free총 메모리는 lsmem총 온라인 메모리보다 작습니다.

관련 정보