Redhat Linux RHEL 5.1 shows less RAM memory than physically present

From /proc/meminfo  &  top & dmesg, our 32bit RHEL 5.1 (but 64-bit hardware)
showed only a total of 3GB RAM.

Physically 16GB RAM were inserted.

Is top/dmesg/meminfo giving the right info or how to get
RHEL 5.1 to fully utilize the 16GB or what's missing?

Is 32 or 64 bit RHEL 5.x better at utilizing memory?
The box hosts 7 Oracle instances

Is there a lot of effort involved to upgrade from 32 bit
to 64 bit RHEL 5.1?  Do I need to take a backup followed
by restore or just install the 64-bit RHEL 5.1 over it &
all the apps will still be intact?

Who is Participating?
Q1. It's difficult to say exactly how much RAM should be shown. A 32bit OS, as has been mentioned already, can handle up to 4GB of RAM. But as system hardware uses address space that is also used by the RAM, the OS will use less than 4GB. Usually between 3.25GB and 3.5GB is therefore available to the OS, but that depends largely on the rest of the hardware so it varies. Another thing which often uses at least part of the memory is the VGA adapter, particularly if it is on-board, these often don't have separate RAM so they share the memory with the main RAM. How much this is can usually be set in the BIOS. As a server normally doesn't need lots of RAM assigned to the GPU, you can probably use a low value there.

Some 32bit distributions also include special "PAE" kernels, these can take advantage of more RAM as they handle it specially, so you could check if you have PAE kernels available for your OS via YUM, and then check if that helps.

Q2. That is the main reason for a 64bit OS, it can handle more than 4GB RAM.

Q3. But generally I agree with omarfarid, you should install a 64bit version of the OS. Backup your important system settings files so it'll be easier to get your system running the way you are used to, and make notes of what is installed and how before installing the new OS. Upgrading from 32bit OS's to 64bit versions is usually not supported.

Q1: It is displaying the correct amount for your Operating system.

Q2: 64bit Operating systems will allow you to use more than 3GB.

Q3: Its best to do a fresh install and then re-install all your software and drivers. You may need 64bit drivers though.

Q3: Im not too familiar with Linux OS so maybe someone else can point you in the correct direction there. Perhaps you just need to upgrade your current 32bit Kernel with a 64bit one. Sorry I cant help you more here.

Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

first increase your swap space it should be double of ur ram
memory greater than 3 GB (in fact > 4GB) is not supported by 32 bit OS. You need to get the 64 bit version. I would recommend to reinstall rather than upgrade from one version to another.
sunhuxAuthor Commented:

Thanks chaps.

But I think I have another 32-bit RHEL 4.x (running on 64 bit hardware)
which showed it has 8GB RAM (from its "top" or "dmesg").  How is
that so?

Just to be sure, what's the Redhat Linux command to check the number
of bits for the Linux?  I'll reconfirm
sunhuxAuthor Commented:

Or shouldn't the RHEL 5 (32bit) shows 4 GB RAM instead of 3 GB total RAM?
32 bits means 2^32 = 4294967296 bytes = 4 GB

to get version run

uname -a
can you show top output from other system?
uname -a
sunhuxAuthor Commented:
Hi Omar/others,

As requested, the information comparing the other 32bit RHEL 4.x that I have
vs the 32bit RHEL 5.1  that shows the weird 3GB RAM (I'm sure we wouldn't
buy this odd amt of 3GB RAM;  4, 8, 16 sounds more likely numbers for RAM
purchase).  All the RHEL 4.x servers (32bit OS) shows the RAM correctly of 8GB
while this pair of RHEL 5.1 (yes, Linux cluster) displayed an odd 3GB RAM.
Appreciate if you can throw any light on this:

# uname -a
Linux SvrWith_8GBRam 2.6.9-67.0.7.ELsmp #1 SMP Wed Feb 27 04:48:20 EST 2008 i686 i686 i386 GNU/Linux

# dmesg | grep -i mem
8320MB HIGHMEM available.
896MB LOWMEM available.
  HighMem zone: 2129920 pages, LIFO batch:16
Memory: 8307032k/9437184k available (1893k kernel code, 80436k reserved, 767k data, 192k init, 7470892k highmem)

top - 00:07:37 up 64 days,  5:43,  1 user,  load average: 0.02, 0.07, 0.17
Tasks: 365 total,   1 running, 364 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0% us,  1.2% sy,  0.9% ni, 95.9% id,  0.1% wa,  0.0% hi,  0.0% si
Mem:   8308576k total,  8278224k used,    30352k free,    21488k buffers
Swap:  8385888k total,   874928k used,  7510960k free,  7095220k cached

# more /proc/meminfo
MemTotal:      8308576 kB
MemFree:         26000 kB
Buffers:         21312 kB
Cached:        7100336 kB
SwapCached:     183832 kB
Active:        5044008 kB
Inactive:      2951800 kB
HighTotal:     7470892 kB
HighFree:         1344 kB
LowTotal:       837684 kB
LowFree:         24656 kB
SwapTotal:     8385888 kB
SwapFree:      7510960 kB
. . . . .

=================== Server with 3GB RAM shown (32 bit RHEL 5.1) ======================

# uname -a
Linux SvrWith_3GbRam 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

# dmesg | grep -i mem
3200MB HIGHMEM available.
896MB LOWMEM available.
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
  HighMem zone: 819200 pages, LIFO batch:31
Memory: 3365612k/4194304k available (2080k kernel code, 40228k reserved, 869k data, 220k init, 2489644k highmem)
Freeing initrd memory: 2468k freed
  MEM window: f2000000-f5ffffff
  MEM window: f6000000-f60fffff
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
  MEM window: disabled.  <== anything wrong with this?
highmem bounce pool size: 64 pages

top - 00:18:20 up 3 days, 12:32,  2 users,  load average: 0.14, 0.07, 0.02
Tasks: 155 total,   1 running, 154 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3369208k total,  3284572k used,    84636k free,   185648k buffers
Swap:  8193108k total,      200k used,  8192908k free,  2756496k cached

# more /proc/meminfo
MemTotal:      3369208 kB
MemFree:         84760 kB
Buffers:        185668 kB
Cached:        2756484 kB
SwapCached:          0 kB
Active:         508672 kB
Inactive:      2635140 kB
HighTotal:     2489644 kB
HighFree:        12244 kB
LowTotal:       879564 kB
LowFree:         72516 kB
SwapTotal:     8193108 kB
SwapFree:      8192908 kB
Dirty:             236 kB
Writeback:           0 kB
AnonPages:      201392 kB
Mapped:          26596 kB
Slab:           123672 kB
PageTables:       2240 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   9877712 kB
. . . . .

Its the difference in the kernel..the 3GB kernel is the ordinary one  2.6.18-53.el5.
The one that shows the 8 GB is an smp kernel 2.6.9-67.0.7.ELsmp

Check if u've got the smp kernel and boot from it in grub. It shouldn't affect anything else normally.

sunhuxAuthor Commented:

> Check if u've got the smp kernel and boot from it in grub

How do I check this?  View /etc/grub.conf?

If the SMP kernel is not there, can I install one with SMP kernel without
affecting anything else?
sunhuxAuthor Commented:
Hi Nabeel/others

The server which shows the amt of RAM correctly has kernel
"Linux SvrWith_8GBRam 2.6.9-67.0.7.ELsmp #1 SMP"
while the weird server has kernel "Linux SvrWith_3GbRam 2.6.18-53.el5 #1 SMP ..."

Both has the phrase SMP, just that the weird server is missing the phrase "ELsmp" -
so is this a known/documented problem with RHEL?
grub.conf can give you
also check /boot
you should find a kernel ending with smp

Khushal Singh NarookaCommented:
upgrade kernel in server which is showing 3GB, use either smp or hugemem kernel

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.