LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Enterprise Linux Forums > Linux - Enterprise
User Name
Password
Linux - Enterprise This forum is for all items relating to using Linux in the Enterprise.

Notices


Reply
  Search this Thread
Old 03-04-2009, 12:02 PM   #1
umproko5
LQ Newbie
 
Registered: Nov 2003
Posts: 1

Rep: Reputation: 0
Memory limitations


According to Red Hat here are the OS limitations,
http://www.redhat.com/rhel/compare/

I am wanting to know ... when using a kernel that supports memory over 4GB, are applications still limited to using only 4 GB?

IE. If 14 GB is available, can one application use 6GB of the 14GB at one time?

Thanks,
/Jason
 
Old 03-04-2009, 12:24 PM   #2
rjlee
Senior Member
 
Registered: Jul 2004
Distribution: Ubuntu 7.04
Posts: 1,994

Rep: Reputation: 76
http://kerneltrap.org/node/2450 : see solution 3.

Basically, each process has a 4GB virtual memory size (which may or may not be wholly allocated). About 1Gb of this space is reserved for the kernel, so you can access 4Gb of virtual memory in any one process.

I believe that you can overcome this by using a tmpfs filesystem (like /dev/shm/) to store data in an in-memory filesystem structure larger than 4Gb. But I've never tried this myself.

Unfortunately, the x86 32-bit instruction set simply doesn't have any instructions to use addresses bigger than 32 bits.

Hope that helps,

—Robert J Lee.
 
Old 03-04-2009, 12:53 PM   #3
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
Quote:
Originally Posted by umproko5 View Post
According to Red Hat here are the OS limitations,
Most, maybe all, of those look like license restrictions, not technology restrictions.

Someone else mostly manages the Red Hat and Centos systems where I work, and so far the answer to any licensing issue has been switch that system from Red Hat to Centos. I didn't know Red Hat had so many license choices and I don't know which are covered by Centos.

But anyway, you seem to be trying to ask a technical question, not a license question.

Quote:
I am wanting to know ... when using a kernel that supports memory over 4GB, are applications still limited to using only 4 GB?
I assume you mean x86, not x86_64. In x86_64 the per process virtual memory limit is somewhere well above where anyone should care yet.

In normal x86, each process is limited to 3GB, because the kernel uses 1GB of each 4GB address space. There is a 32 bit kernel version in which kernel memory is in a different address space, so each process can use 4GB. But that is an ugly kludge.

Quote:
If 14 GB is available, can one application use 6GB of the 14GB at one time?
If 14 GB is available, you probably have a CPU that can run an x86_64 kernel, and if you care whether one application can use 6GB you should be running an x86_64 kernel.

Quote:
Originally Posted by rjlee View Post
I believe that you can overcome this by using a tmpfs filesystem (like /dev/shm/) to store data in an in-memory filesystem structure larger than 4Gb. But I've never tried this myself.
I assume you mean to create some kind of software demand paging (probably on a chunk size much larger than a page) by demand mapping a tmpfs as a form of named shared memory.

I don't know enough about named shared memory to know how demand mapping that would compare to demand file mapping into a tmpfs. I'm sure one or both of those could be made to work for efficient use of more than 4GB of physical ram by a 32-bit program. But why bother?

If you manage to have one of the few old motherboard/CPU combinations that has 16GB of ram without x86_64 support, I'm sorry you wasted your money back when that was expensive, but dump it. A new (faster) CPU and motherboard and 16GB of faster ram is very low cost compared to the aggravation of doing 6GB per application computing with a 32bit CPU.

Last edited by johnsfine; 03-04-2009 at 01:02 PM.
 
Old 03-06-2009, 04:37 AM   #4
salasi
Senior Member
 
Registered: Jul 2007
Location: Directly above centre of the earth, UK
Distribution: SuSE, plus some hopping
Posts: 4,070

Rep: Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897
Quote:
Originally Posted by umproko5 View Post
According to Red Hat here are the OS limitations,
http://www.redhat.com/rhel/compare/

I am wanting to know ... when using a kernel that supports memory over 4GB, are applications still limited to using only 4 GB?

IE. If 14 GB is available, can one application use 6GB of the 14GB at one time?

Thanks,
/Jason
You link to a page which covers memory capacity by RHEL version, although you need to read the notes carefully; is your question because you are not using RHEL or because you have not been able to get the info that you want??? (With a support contract, RH support should be able to give you an answer to this by return of e-mail; if they aren't answering a question like this, this would be a big negative for them.)

The PAE kernel (which may or may not be available in a version of RH; the page that you quote isn't clear about which kernel.org kernel is which of their kernels) supports more than 4G of memory on a 32 bit system; the processor has to support the relevant instructions of course; anything modern will, but more exact definitions are on the wikki page.

It does still, afaik, have the 4G max per process limitation, even though the system as a whole can use more memory than that. If you are close to that limit, you really should be considering the 64 bit kernel.

The 64 bit kernel supports larger amounts of memory; to me it currently seems to support infinite amounts of memory in that the limit is set at a value of 'more than I am prepared to afford', which might as well be infinite.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Difference between resident memory,shared memory and virtual memory in system monitor mathimca05 Linux - Newbie 1 11-11-2007 04:05 AM
Memory limitations with FC6? ACDII Fedora 2 05-02-2007 01:19 PM
SoundFont memory limitations on Audigy 2? fyhuang Linux - Hardware 0 12-19-2005 04:01 PM
Hardware limitations? Recycler Linux - General 2 11-16-2004 05:45 PM
Partition limitations? x^n Linux - Newbie 1 05-11-2002 07:26 AM

LinuxQuestions.org > Forums > Enterprise Linux Forums > Linux - Enterprise

All times are GMT -5. The time now is 11:59 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration