Centos 6.5 only using 24GB/48GB of memory

centosmemory

I recently installed an additional 32GB of memory in my Dell PowerEdge R900 home virtual machine server. Memory check passed and I booted into CentOS. When I opened the Virtual machine manager and checked my memory usage, my machine only reported 23.59GB as being available for use. I thought that was very odd, so I invoked dmidecode and all 48GB of installed memory were reported correctly.

However, when I ran the free command, it lists the total memory as being 23.59GB again. I'm using the 64-bit version of CentOS 6.5 on a Dell PowerEdge R900 so what's going on here that would stop me from using all 48GB?

Update: Here are the relevant portions of dmesg output:

MTRR default type: uncachable

and

MTRR variable ranges enabled:
  0 base 0000000000 mask FF80000000 write-back
  1 base 0100000000 mask FF00000000 write-back
  2 base 0200000000 mask FE00000000 write-back
  3 base 0400000000 mask FE00000000 write-back
  4 base 0600000000 mask FF80000000 write-back
  5 base 007FC00000 mask FFFFC00000 uncachable
  6 disabled
  7 disabled
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
    original variable MTRRs
reg 0, base: 0GB, range: 2GB, type WB
reg 1, base: 4GB, range: 4GB, type WB
reg 2, base: 8GB, range: 8GB, type WB
reg 3, base: 16GB, range: 8GB, type WB
reg 4, base: 24GB, range: 2GB, type WB
reg 5, base: 2044MB, range: 4MB, type UC
total RAM covered: 24572M
Found optimal setting for mtrr clean up
 gran_size: 64K     chunk_size: 8M  num_reg: 6      lose cover RAM: 0G
New variable MTRRs
reg 0, base: 0GB, range: 2GB, type WB
reg 1, base: 2044MB, range: 4MB, type UC
reg 2, base: 4GB, range: 4GB, type WB
reg 3, base: 8GB, range: 8GB, type WB
reg 4, base: 16GB, range: 8GB, type WB
reg 5, base: 24GB, range: 2GB, type WB
e820 update range: 000000007fc00000 - 0000000100000000 (usable) ==> (reserved)

Best Answer

For anyone else running into the same issue, my problem was indeed caused by Dell Servers being picky about memory module placement. I had originally placed the 4 pairs of 4GB modules in slots 3 & 4 of all four memory risers (the original 4 pairs of 2GB modules I left in slots 1 & 2 of the memory risers).

However, for whatever reason Dell Servers don't work that way. What solved the problem was for me to place the pairs of 4GB modules in slots 1 & 2 in each riser and move the pairs of 2GB modules to slots 3 & 4.

I hope that helps someone else running into the same problem. Though, knowing now that this wasn't an error in kernel config, this question should probably be moved to ServerFault.

Related Question