I'm a new I.T. guy in my company, and while I was checking the servers, I found that, to my surprise, the server is using a 32-bit version of Ubuntu, but is using almost all of the installed 8GB of RAM.

I remember from my "Computer Architecture" classes that only 64-bit operating systems can use more than 4GB of RAM.

The question that follows is: Will it be able to use 16GB of RAM if I were to upgrade it?

(I can't test, because this is the core production server)

uname -a:

Linux bachue 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013 i686 athlon i686 GNU/Linux

Output from top: enter image description here

  • 1
    "It is secure to upgrade the RAM for a Server using a 32-bit software" no. a production server you replace by another server and set that one up. Then you copy over the user data, test it and replace the live server with this one. And that 1st live one can then be upgraded. – Rinzwind Sep 28 '16 at 14:09
  • 1
    Whatever you do, upgrade to a supported release, ideally a long term support (LTS) version like 14.04 or 16.04. You're currently operating a system that hasn't received any security updates for over two and a half years! That thing should not be allowed near any internet connection and definitely not as production server. And while upgrading the OS, you can upgrade the RAM as well. – Byte Commander Sep 28 '16 at 14:11
  • @Rinzwind ... Thanks for the comment. At this moment we don't have a test enviroment. Currently working on that (short budget), but any ideas would be helpfull. – Elber CM Sep 28 '16 at 16:38
  • @ByteCommander ... Thanks for the comment and answer. Just want to make some emphasis about I'm new in the company, also just as shocked as you guys to see an 32-bit server, without a LTS version. – Elber CM Sep 28 '16 at 16:39

Simple. PAE.

From that link:

The Linux kernel includes full PAE mode support starting with version 2.3.23,[21] enabling access of up to 64 GB of memory on 32-bit machines. A PAE-enabled Linux kernel requires that the CPU also support PAE. The Linux kernel supports PAE as a build option and major distributions provide a PAE kernel either as the default or as an option.

So if it works fine with 8GB, it should work fine with 16GB.

  • 2
    Note that even with PAE, each single process can still only address up to 4GB. – Byte Commander Sep 28 '16 at 14:13
  • @ByteCommander could you elaborate more? – Elber CM Sep 28 '16 at 16:39
  • @ElberCM "The 32-bit size of the virtual address is not changed, so regular application software continues to use instructions with 32-bit addresses and (in a flat memory model) is limited to 4 gigabytes of virtual address space. Operating systems supporting this mode use page tables to map the regular 4 GB address space into the physical memory, which, depending on the operating system, may be as big as 64 GB. The mapping is typically applied separately for each process, so that the extra memory is useful even though no single regular application can access it all simultaneously." – Byte Commander Sep 28 '16 at 16:43

Not the answer you're looking for? Browse other questions tagged or ask your own question.