cancel
Showing results for 
Search instead for 
Did you mean: 

PAE / Highmen

wobbe
Respected Contributor

PAE / Highmen

I have two hp proliant servers running Redhat ES2.1 Both machines have 4GB ram. But one machine only sees 3.5GB ram. I think this has something to do with PAE support in the used kernel. How kan I find out if the kernal support PAE?
18 REPLIES
Ivan Ferreira
Honored Contributor

Re: PAE / Highmen

>>> Redhat ES2.1

I think that in these versions, you need to install the kernel-bigmem package or something similar. Check the kernel* packages available.
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
wobbe
Respected Contributor

Re: PAE / Highmen

I really don't wanna start messing about with these machines. isn't there a file somewhere that lists al kernel options?
~sesh
Esteemed Contributor

Re: PAE / Highmen

You will need kernel-hugemem or something similar for a system with more than 4 GB memory.

Check "cat /proc/cpuinfo", do you see pae as one of the flags?

There is a parameter in kernel called CONFIG_HIGHMEM. How much recommended it is, I am not sure. Since you do not want to mess around, I would not suggest this.
Matti_Kurkela
Honored Contributor

Re: PAE / Highmen

Use the command "uname -r" to find out your kernel version.

Then look in the /boot directory: most Linux distributions, including RedHat, create a file like /boot/config- to document all the kernel configuration settings of the pre-built kernels.

The configuration file contains only ASCII text, so you can view it. Look for settings like CONFIG_HIGHMEM. CONFIG_HIGHMEM64G certainly enables PAE support: other CONFIG_HIGHMEM options (CONFIG_NOHIGHMEM or CONFIG_HIGHMEM4G) change the memory arrangement within the 4GiB limit of the 32-bit architecture.

To find the meaning of the various options, it's usually easiest to get the kernel source package and read the option description in the kernel configurator's Help menus.

See also:
http://www.spack.org/wiki/LinuxRamLimits

The memory difference might also be caused by some PCI add-on cards: if a card has some I/O memory that must be accessible to the applications (e.g. some sort of transfer buffers in case of a SCSI/RAID card or a video digitizer), this I/O memory will overlap some of the real memory within 4 GiB limit.

MK
MK
wobbe
Respected Contributor

Re: PAE / Highmen

Iâ ve checked the cpuinfo file but it doesn't give me the answer. Both servers have "pae" as a flag but thatâ s probably because they support PAE. I've also looked under the boot folder but there's nothing that starts with config and I donâ t know if itâ s a good idea to start opening the files that are in there. But I do need to know if the kernel is using PAE because I want to upgrade the servers to 8GB. And this is only useful if the kernel support more that 4GB. There must be a way to find out, even when it is a precompiled kernel. My kernel version is btw 2.4.9-e.3smp
wobbe
Respected Contributor

Re: PAE / Highmen

Iâ ve checked the cpuinfo file but it doesn't give me the answer. Both servers have "pae" as a flag but thatâ s probably because they support PAE. I've also looked under the boot folder but there's nothing that starts with config and I donâ t know if itâ s a good idea to start opening the files that are in there. But I do need to know if the kernel is using PAE because I want to upgrade the servers to 8GB. And this is only useful if the kernel support more that 4GB. There must be a way to find out, even when it is a precompiled kernel. My kernel version is btw 2.4.9-e.3smp
~sesh
Esteemed Contributor

Re: PAE / Highmen

You do not need to open / edit the files that you find the in the proc or boot folder.

The /proc/cpuinfo simply indicates that the processor is PAE capable if pae is present in the flags, nothing more.

What you actually need is a kernel with PAE support, that's all. If kernel doesn't support PAE, your system will not see more than 4 GB RAM.

Since you also plan to upgrade the RAM to 8 GB, I would recommend that you either try compiling the kernel or upgrade the version of RHEL to a version that has a PAE enabled kernel by default.

Compiling should be easy, just make sure you have a separate kernel for this purpose. The parameters can be tweaked. You need to start either "make config" or "make menuconfig". This link has more description & some screenshots.

http://en.linuxreviews.org/Kernel_Rebuild_Guide#The_Configuration_Process
~sesh
Esteemed Contributor

Re: PAE / Highmen

Oh the reason I'm suggesting this is because for 2.4.9-e.3smp I can't find a PAE (kernel-hugemem).
Heironimus
Honored Contributor

Re: PAE / Highmen

The "smp" kernel on RH 2.1 only supports up to 4G. You will need to install and boot the "enterprise" kernel to use more.

I do not think 2.1 has a "hugemem" kernel, I think hugemem kernels are only for RHEL 3 and 4 and are only required for systems with more than 16GB of memory.

Not surprisingly, "2.4.9-e.3smp" is the SMP kernel. The enterprise kernel has "enterprise" instead of "smp" in the version string. Off the top of my head I don't remember what the official supported memory limit is on 2.1 ES, you might want to check with your RH support to make sure you don't go out of compliance (it's a contract thing, not a technology thing).

By the way, that's a very old kernel, I think the current release for 2.1 is 2.4.9-e.72. Since you have to boot a different kernel anyway to increase the memory you may want to consider an update.
wobbe
Respected Contributor

Re: PAE / Highmen

For now I'm not looking for solutions. I only want to find out if my kernel has PAE support or not. Both servers have the same kernels and they both have 4 GB ram. The proliant DL380G3 kernel has 4GB ram the DL360G4 kernal has only 3.5GB ram. If you only have 3.5 out of 4GB can you assume that the kernel doesn't have PAE support?
~sesh
Esteemed Contributor

Re: PAE / Highmen

The PAE support on Linux Kernel was included by default on version 2.6 and later, till the current release.

Check the stable version history on wikipedia:
http://en.wikipedia.org/wiki/Linux_kernel

The kernel you have is 2.4.9-e.3smp, which doesn't support PAE by default.

Hope this clarifies the situation.
wobbe
Respected Contributor

Re: PAE / Highmen

Nope, still kinda misty.
If I user a W2003 machine (DL360G4) and enable/disable the PAE option I get 4GB memory with PAE enabled and 3,5GB with PAE disabled.
If my kernel doesn't support PAE why does one machine show 4GB and the other 3,5GB? They both have the same kernel.
Heironimus
Honored Contributor

Re: PAE / Highmen

I would expect to see some variance in the available memory on different 4G system with the -smp kernel, but .5G seems a bit high. Do both servers have the exact same peripherals (PCI cards and such)?
Rob Leadbeater
Honored Contributor

Re: PAE / Highmen

wobbe
Respected Contributor

Re: PAE / Highmen

Interesting Article.
Now I know why most of my servers with 4GB only see 3,5GB or 3,75GB. But I wonder if it will be useful to enable PAE. Enabling PAE will surly cost some resources and I don't stand to gain a lot of memory. But that's something for a different topic.
Although I have not found a way to see if the kernel support PAE. I can now assume that it doesnâ t because the O.S. only sees 3,5GB Still it is strange that the other system with the same O.S. and kernel does see 4GB.
wobbe
Respected Contributor

Re: PAE / Highmen

Used the following command on both servers. See attached files for the results.

cat /var/log/dmesg |more
wobbe
Respected Contributor

Re: PAE / Highmen

second file
~sesh
Esteemed Contributor

Re: PAE / Highmen

From the screenshots, it is clear that the current kernel doesn't support PAE. Notice it says "Use a PAE enabled kernel".

The normally addressable kernel memory region (below 896 MB) is called low memory. The kernel memory allocator, kmalloc(), returns memory from this region. Memory beyond 896 MB (called high memory) can be accessed only using special mappings.

During boot, the kernel calculates and displays the total pages present in each of these memory zones. After boot, this information is available via /proc/meminfo.

I don't think we can do something to manipulate & get this into the HIGHMEM "zone".