I have installed Oracle Enterprise Linux 64bit on the server with 64g of RAM. But the system detects just 32b of memory, here are the details:
[root@oracle-node2 ~]# uname -a
Linux oracle-node2.ra.gov.ge 2.6.18-194.el5xen #1 SMP Mon Mar 29 22:22:00 E DT 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@oracle-node2 ~]# uname -r
2.6.18-194.el5xen
[root@oracle-node2 ~]# uname -m
x86_64
[root@oracle-node2 ~]# head /proc/meminfo
MemTotal: 33554432 kB
MemFree: 28984540 kB
Buffers: 35612 kB
Cached: 1912284 kB
SwapCached: 0 kB
Active: 1620324 kB
Inactive: 1212660 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 33554432 kB
[root@oracle-node2 ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux (2.6.18-194.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-194.el5
module /vmlinuz-2.6.18-194.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-194.el5xen.img
title Enterprise Linux-base (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb qui et
initrd /initrd-2.6.18-194.el5.img
How can I change that limit to 64g? Note: BIOS shows 64g in memory section.
Additional info:
[root@oracle-node1 ~]# dmesg | grep -i memory
Memory: 32782304k/33562624k available (2512k kernel code, 771444k reserved, 1396k data, 184k init)
Non-volatile memory driver v1.2
[root@oracle-node1 ~]# dmidecode -t 16
# dmidecode 2.10
SMBIOS 2.5 present.
Handle 0x002B, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Single-bit ECC
Maximum Capacity: 192 GB
Error Information Handle: Not Provided
Number Of Devices: 18
Yeah, as I guessed, it is a limitation of the xen kernel. As far it seems the kernel you are using can only detect 32 GiB of memory for dom0. The rest of 32 GiB can be allotted to domU however.
I can't find the documentation that I was searching but I can look it up later. You see, in dmesg it tells that kernel is detecting only 32 GiB of RAM and that is what you also see in
/proc/meminfo
.This thread also states the same.
http://xen.1045712.n5.nabble.com/memory-quesion-td2609396.html
It says
If you can hold on, I can also check in source or in more authoritative articles.
Check if the Xen Hypervisor is seeing all your memory:
If the Xen Hypervisor sees all your 64GB of ram, check how much memory is allocated to Dom0:
If the Xen Hypervisor sees all your 64GB of ram but only 32GB are allocated to Domain-0, I'd try explicitly setting
dom0_mem
on the hypervisor command line.If the Xen Hypervisor does not see all your 64GB of ram, I honestly don't know where to look :) but I'd try using a more recent version of the Xen Hypervisor and/or dom0 Linux kernel/system.