8GB RAM missing?

r4pt0x

Member
Jan 5, 2012
53
0
6
I just recognized our proxmox system isn't using the full ammount of RAM anymore...
Unfortunately i can't tell since when this problem is persistent (how often do you check if you have "lost" RAM?...), i just recognized our Windows machine (MSSQL server) being utterly slow and having really poor RAM performance, while checking for the reason (was mainly a stuck process) i also recognized the missing RAM...

The Machine has 32GB RAM (4x8GB):

root@proxmox:~# lshw -c memory
Code:
....
     *-memory
          description: System Memory
          physical id: 1a
          slot: System board or motherboard
          size: 32GiB
        *-bank:0
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 0
             serial: B0111052
             slot: DIMM A1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:1
             description: DIMM Synchronous [empty]
             physical id: 1
             slot: DIMM A2
        *-bank:2
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 2
             serial: 7A0A674F
             slot: DIMM B1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:3
             description: DIMM Synchronous [empty]
             physical id: 3
             slot: DIMM B2
        *-bank:4
             description: DIMM Synchronous [empty]
             physical id: 4
             slot: DIMM C1
        *-bank:5
             description: DIMM Synchronous [empty]
             physical id: 5
             slot: DIMM C2
        *-bank:6
             description: DIMM Synchronous [empty]
             physical id: 6
             slot: DIMM D1
        *-bank:7
             description: DIMM Synchronous [empty]
             physical id: 7
             slot: DIMM D2
        *-bank:8
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 8
             serial: D383A713
             slot: DIMM E1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:9
             description: DIMM Synchronous [empty]
             physical id: 9
             slot: DIMM E2
        *-bank:10
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: a
             serial: 90113052
             slot: DIMM F1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:11
             description: DIMM Synchronous [empty]
             physical id: b
             slot: DIMM F2



But it's only seeing/using 24GB of it:

root@proxmox:~# cat /proc/meminfo
Code:
MemTotal:       24685908 kB
MemFree:          451476 kB
Buffers:            6252 kB
Cached:           493404 kB
SwapCached:      1482212 kB
Active:         19703416 kB
Inactive:        3164072 kB
Active(anon):   19636904 kB
Inactive(anon):  2780684 kB
Active(file):      66512 kB
Inactive(file):   383388 kB
Unevictable:       59588 kB
Mlocked:           59588 kB
SwapTotal:      24117240 kB
SwapFree:       16725560 kB
Dirty:               144 kB
Writeback:             0 kB
AnonPages:      21091740 kB
Mapped:            61996 kB
Shmem:             43588 kB
Slab:             763828 kB                                                                                           
SReclaimable:      73584 kB                                                                                           
SUnreclaim:       690244 kB                                                                                           
KernelStack:        3008 kB
PageTables:        82680 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    36460192 kB
Committed_AS:   39778488 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      205592 kB
VmallocChunk:   34342044204 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        6848 kB
DirectMap2M:    25157632 kB

Any ideas?

BIOS hasn't been touched since setup 10 months ago, also the RAM size hasn't changed since (upgrade was planned for the next 2 months).
I haven't seen such behaviour yet, so i have no idea where to start... Thanks for any help!
 
While investigating some other problem i just found these entries in dmesg:

Code:
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009cc00 (usable)
 BIOS-e820: 000000000009cc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d2000 - 00000000000d4000 (reserved)
 BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000bfeb0000 (usable)
 BIOS-e820: 00000000bfeb0000 - 00000000bfec3000 (ACPI data)
 BIOS-e820: 00000000bfec3000 - 00000000bfec4000 (ACPI NVS)
 BIOS-e820: 00000000bfec4000 - 00000000bfeff000 (reserved)
 BIOS-e820: 00000000bff00000 - 00000000c0000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000a40000000 (usable)
DMI present.
SMBIOS version 2.6 @ 0xF6B90
DMI: Acer G540 M2/G540 M2, BIOS P05   06/24/2009
Phoenix BIOS detected: BIOS may corrupt low RAM, working around it.
e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
e820 update range: 0000000000000000 - 0000000000001000 (usable) ==> (reserved)
e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
last_pfn = 0xa40000 max_arch_pfn = 0x400000000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-BFFFF uncachable
  C0000-CFFFF write-protect
  D0000-DFFFF uncachable
  E0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 00C0000000 mask FFC0000000 uncachable
  1 base 0000000000 mask F800000000 write-back
  2 base 0800000000 mask FE00000000 write-back
  3 base 0A00000000 mask FFC0000000 write-back
  4 base 00BFF00000 mask FFFFF00000 uncachable
  5 disabled
  6 disabled
  7 disabled
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
original variable MTRRs
reg 0, base: 3GB, range: 1GB, type UC
reg 1, base: 0GB, range: 32GB, type WB
reg 2, base: 32GB, range: 8GB, type WB
reg 3, base: 40GB, range: 1GB, type WB
reg 4, base: 3071MB, range: 1MB, type UC
total RAM covered: 40959M
 gran_size: 64K         chunk_size: 64K         num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 128K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 64K     chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 128K        chunk_size: 128K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 128K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 256K        chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
gran_size: 256K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 256K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 512K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 512K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 512K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 512K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 1M  chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 1M  chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 1M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 2M  chunk_size: 2M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 2M  chunk_size: 4M  num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 8M  num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 16M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 32M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 64M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 128M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 256M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 512M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 1G  num_reg: 8      lose cover RAM: 1M
*BAD*gran_size: 2M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1023M
 gran_size: 4M  chunk_size: 4M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 4M  chunk_size: 8M  num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 16M         num_reg: 8      lose cover RAM: 3M
gran_size: 4M  chunk_size: 32M         num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 64M         num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 128M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 256M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 512M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 1G  num_reg: 8      lose cover RAM: 3M
*BAD*gran_size: 4M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1021M
 gran_size: 8M  chunk_size: 8M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 8M  chunk_size: 16M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 32M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 64M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 128M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 256M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 512M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 1G  num_reg: 8      lose cover RAM: 7M
*BAD*gran_size: 8M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1017M
 gran_size: 16M         chunk_size: 16M         num_reg: 8      lose cover RAM: 33807M
 gran_size: 16M         chunk_size: 32M         num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 64M         num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 128M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 256M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 512M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 1G  num_reg: 8      lose cover RAM: 15M
*BAD*gran_size: 16M     chunk_size: 2G  num_reg: 8      lose cover RAM: -1009M
 gran_size: 32M         chunk_size: 32M         num_reg: 8      lose cover RAM: 25631M
 gran_size: 32M         chunk_size: 64M         num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 128M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 256M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 512M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 1G  num_reg: 8      lose cover RAM: 31M
*BAD*gran_size: 32M     chunk_size: 2G  num_reg: 8      lose cover RAM: -993M
 gran_size: 64M         chunk_size: 64M         num_reg: 8      lose cover RAM: 9279M
 gran_size: 64M         chunk_size: 128M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 256M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 512M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 1G  num_reg: 8      lose cover RAM: 63M
*BAD*gran_size: 64M     chunk_size: 2G  num_reg: 8      lose cover RAM: -961M
 gran_size: 128M        chunk_size: 128M        num_reg: 8      lose cover RAM: 1151M
 gran_size: 128M        chunk_size: 256M        num_reg: 8      lose cover RAM: 127M
 gran_size: 128M        chunk_size: 512M        num_reg: 8      lose cover RAM: 127M
 gran_size: 128M        chunk_size: 1G  num_reg: 8      lose cover RAM: 127M
*BAD*gran_size: 128M    chunk_size: 2G  num_reg: 8      lose cover RAM: -897M
 gran_size: 256M        chunk_size: 256M        num_reg: 8      lose cover RAM: 255M
 gran_size: 256M        chunk_size: 512M        num_reg: 8      lose cover RAM: 255M
 gran_size: 256M        chunk_size: 1G  num_reg: 8      lose cover RAM: 255M
*BAD*gran_size: 256M    chunk_size: 2G  num_reg: 8      lose cover RAM: -769M
 gran_size: 512M        chunk_size: 512M        num_reg: 7      lose cover RAM: 511M
 gran_size: 512M        chunk_size: 1G  num_reg: 8      lose cover RAM: 511M
*BAD*gran_size: 512M    chunk_size: 2G  num_reg: 8      lose cover RAM: -513M
 gran_size: 1G  chunk_size: 1G  num_reg: 6      lose cover RAM: 1023M
 gran_size: 1G  chunk_size: 2G  num_reg: 7      lose cover RAM: 1023M
 gran_size: 2G  chunk_size: 2G  num_reg: 5      lose cover RAM: 2047M
mtrr_cleanup: can not find optimal value
please specify mtrr_gran_size/mtrr_chunk_size
e820 update range: 00000000bff00000 - 0000000100000000 (usable) ==> (reserved)
last_pfn = 0xbfeb0 max_arch_pfn = 0x400000000
initial memory mapped : 0 - 20000000
init_memory_mapping: 0000000000000000-00000000bfeb0000
 0000000000 - 00bfe00000 page 2M
 00bfe00000 - 00bfeb0000 page 4k
kernel direct mapping tables up to bfeb0000 @ 10000-15000
init_memory_mapping: 0000000100000000-0000000a40000000
 0100000000 - 0a40000000 page 2M
kernel direct mapping tables up to a40000000 @ 13000-3d000
RAMDISK: 37058000 - 37fef71a

Meanwhile we are using 6x8GB of RAM, the 2 new modules are the same as the 4 already in use.
I have to reboot the machine tonight for some other maintenance, then i will also check if the mtrr_cleanup values can be correctly set when changing memory remap options within the BIOS.
 
I'll check that. I remember having troubles with a BIOS-Update on that system (always crashed right after POST-screen and system freezed after ~30secs when in BIOS), so i never touched it again after finally getting it downgraded back to the previous version. Must have been about mid-2011, but i can't find the files i used back then, so i can't tell what version i tried to flash.

But it seems to be the PCI memory hole generating the warning messages and "hiding" the 8GB RAM - changing the granularity doesn't have any effect besides the *BAD*gran size messages appear at different positions, unfortunately the BIOS doesn't have any option for disabling the memory hole for 64bit systems. Maybe an update will fix this.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!