M1 ThinkCentre: Linux: 4Gmem: Why only see 2.5G?

ibanja used Ask the Experts™
I have an IBM ThinkCentre, model M1.  I just upgraded from 2.5 to 4 gigs of memory.  

I am running Kubuntu 8.04 Linux on my desktop.  When I run th free command, I get the following:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2534       2461         72          0         20        843
-/+ buffers/cache:       1598        935
Swap:         3820       1105       2714

It is showing only 2.5g memory but 1.5g in cache.

Is this normal? When I run free on my Centos server with 12g of memory, I have all 11.5g in memory and only .5g in cache.

Is there a way to change this? Should I?

BTW--I've checked the bios settings and don't see anything obvious to change.

Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Ubuntu is most likely taking advantage of the added memory to cache more in order to decrease load times.  When your memory usage increases it will release cache for those applications.  As long as you don't run out of memory due to the cache I would just leave it.
Kubuntu sorry :)


Thanks kagenokaze,

Hmm, sounds plausible, except the memory amount never changes.  I would think when I start running those 3 extra virtual machines on VMware that the memory would increase.. or would it.   In any case. It never seems to change.

Success in ‘20 With a Profitable Pricing Strategy

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Ha... Ok I read that wrong its the way I originally thought it was.
The OS only sees the first 2.5GB of memory.  The cache is normal but the total size is off.

Are you using Kubuntu AMD64?  32 bit versions of any OS cannot use the full 4GB of memory.


I am using 32 bit version, but I am also running 32 bit on my server.  Notice my server output:

# getconf LONG_BIT
The 32 Bit versions of Centos and Kubuntu can see and use up to 64GB of ram but only if you run the server based kernels which have PAE enabled.  This package will only work if you have a PAE capable processor.  This will come at a cost compared to the 64 bit version though because you will be limited to the max memory the 32 bit os can support per process.  Most likely the Centos install is using the PAE kernel by default.

To Install:

$ sudo apt-get update
$ sudo sudo apt-get install linux-headers-server linux-image-server linux-server

Open in new window


Yup, my server is running the PAE kernel.  

$ uname -s -r
Linux 2.6.18-164.11.1.el5PAE

I have installed the server kernel to try it out. I can't reboot my computer for a few hours since I have some data feeds running that shouldn't be disconnected.  I'll let you know how this works once I do.

I guess the question is, what drivers will I loose using the server kernel?
That i am not sure of but i wouldnt expect much of a difference but I haven't used a server kernel on a desktop install before.  I would personally just install the 64bit version but to each his own i guess.


It's still only seeing 2.5gigs of memory.  

$ uname -s -r
Linux 2.6.24-26-server

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2533       1937        596          0         72        462
-/+ buffers/cache:       1402       1131
Swap:         3820          0       3820

Looks like the best thing to do is install the 64bit version.

Thanks for the help.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial