Saya punya server CentOS 5.10 ( 32-bit ) yang berjalan di VMWare. Ini dialokasikan 4 GB RAM.
Jika saya menjalankan dmidecode -t 17 | grep Size | grep MB
saya melihat:
Size: 4096 MB
Namun ketika saya berlari free
, saya melihat:
total used free shared buffers cached
Mem: 3107140 1239244 1867896 0 332 400464
-/+ buffers/cache: 838448 2268692
Swap: 2096472 0 2096472
Mengapa ada perbedaan antara jumlah total free
laporan memori dan dmidecode
output?
Kernel yang saya jalankan adalah:
2.6.18-371.4.1.el5 #1 SMP Thu Jan 30 06:09:24 EST 2014 i686 i686 i386 GNU/Linux
Diakui, kernel tidak berjalan PAE
tapi saya pikir itu hanya diperlukan untuk memori melebihi 4 GB.
Saya tahu saya kehilangan sesuatu yang sederhana - dapatkah seseorang menjelaskan lebih lanjut?
Catatan / Pengamatan Tambahan
Sepertinya kernel saya menyimpan banyak memori untuk hal-hal lain. Inilah yang saya lihat di /var/log/dmesg
:
Linux version 2.6.18-371.4.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Thu Jan 30 06:09:24 EST 2014
BIOS-provided physical RAM map:
BIOS-e820: 0000000000010000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bfef0000 (usable)
BIOS-e820: 00000000bfef0000 - 00000000bfeff000 (ACPI data)
BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f6bf0
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
/proc/meminfo
?/proc/iomem
akan menunjukkan memori yang digunakan oleh perangkat tempat Linux memiliki drivernya. Peta memori e820 (di awaldmesg
kernel yang baru di-boot) akan menunjukkan kepada Anda apa yang dipikirkan BIOS / EFI Anda di wilayah mana yang dicadangkan. Mencocokkan mereka satu sama lain adalah AFAIK tugas manual tanpa dukungan alat.Output dari
free
perintah tidak menghitung memori kernel yang dicadangkan dan beberapa bit kecil lainnya. Anda akan melihat perbedaan ini bahkan dalam kernel 64-bit dan bahkan dengan <2GB RAM.sumber
free
, mesin 4GB menunjukkan 3948 MB.Garis kritis dari peta RAM fisik Anda adalah ini:
Baris ini menunjukkan bahwa 1 GB (0x40000000 byte, heksadesimal) dari RAM fisik sistem Anda sedang dipetakan oleh BIOS di atas batas 4GB, membuatnya tidak dapat diakses oleh sistem 32-bit tanpa PAE.
sumber