LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel
User Name
Password
Linux - Kernel This forum is for all discussion relating to the Linux kernel.

Notices


Reply
  Search this Thread
Old 02-25-2009, 08:37 AM   #1
kauuttt
Member
 
Registered: Dec 2008
Location: Atlanta, GA, USA
Distribution: Ubuntu
Posts: 135

Rep: Reputation: 26
How can I get the "Per process memory limitation" for 64-bit system?


I have a 64 bit system.
How can I get the "Per process memory limitation" for my system.

Any commands or files to look at ?

thanks-kd
 
Old 02-25-2009, 08:51 AM   #2
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
What do you mean by "Per process memory limitation" and/or what do you want that information for.

I don't think there is any meaning for that phase that has any practical significance.

In a typical 32 bit Linux, each process is limited to 3GB of virtual address space. When you figure in the memory mapping of the executable and shared objects, plus demand zero and other forms of address space that might not get backed at all while the task runs, plus the swap area etc., 3GB is a meaningful limit even on systems with far less than 3GB of physical ram (that 3GB limit might prevent some application that without a 3GB virtual limit might run just fine in a fraction that much physical ram).

In a 64 bit Linux system, any theoretical hard limit on per process virtual address space is far above any practical level. Some system wide limit on total amount of mapping capacity or commit level or backing store or something will stop you before you reach any theoretical limit on per process virtual memory.
 
Old 02-25-2009, 08:57 AM   #3
kauuttt
Member
 
Registered: Dec 2008
Location: Atlanta, GA, USA
Distribution: Ubuntu
Posts: 135

Original Poster
Rep: Reputation: 26
As u mentioned, that in 32 bit system each process is limited to 3GB of virtual address space. What is the same for 64 bit?

From where I can check this info (3 Gb or something else)?
can u pls tell me where/how u checked in 32 bit system...I can do the same for 64 bit.
 
Old 02-25-2009, 09:45 AM   #4
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197Reputation: 1197
I don't know where you can check it on a specific Linux system. I just know that 3GB is typical and is the value on every 32 bit Linux I use. I'm pretty sure it can and sometimes is adjusted as a build time option.

32 bit mode has a 4GB limit per process (including kernel) in the hardware architecture. An OS design must divide that between kernel and process. Windows by default divides it 2GB/2GB but can be set to divide it 1GB/3GB. Linux typically divides it 1GB/3GB, but can be set to 2GB/2GB or to (inefficiently elsewhere)/4GB.

The current hardware architecture for 64 bit has a limit (per process including kernel virtual) of 262144GB, and is designed to make an even division between Kernel and process most practical. So an OS could easily have a limit of 131072GB virtual for each process.

However, there are some performance advantages to designing the OS with a lower limit on per process virtual memory. I think I read somewhere that XP64 set that to 320768GB per process virtual. I think there would be a significant simplification and performance advantage at a limit of 1024GB process virtual (but that would actually constrain some plausible uses, so it wouldn't be a good idea). I don't recall what if anything I've ever read about what Linux has done for that.

People asking these impractical questions are usually referred to
http://linux-mm.org/LinuxMM
as an introduction to where you might look to find it yourself. Just now, I followed a few links there to see if your answer was given. I didn't find it.

BTW, the x86_64 architecture (unlike the 32bit architecture) is designed to allow a future expansion far beyond 262144GB involving a change to both CPU chip design and OS kernel source code, but NOT requiring any user code to be changed nor even recompiled.

Last edited by johnsfine; 02-25-2009 at 09:47 AM.
 
Old 02-26-2009, 08:50 AM   #5
kauuttt
Member
 
Registered: Dec 2008
Location: Atlanta, GA, USA
Distribution: Ubuntu
Posts: 135

Original Poster
Rep: Reputation: 26
Thanks Johnsfine for your suggestions!!!
any others suggestions??
 
  


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
what is "sticky bit mode" , "SUID" , "SGID" augustus123 Linux - General 10 08-03-2012 04:40 AM
"No root file system is defined" - During installation process of Ubuntu Trinric Linux - Newbie 7 02-14-2011 12:44 PM
Measure "CPU load" and "memory consumption" of a process DaneelGiskard Programming 3 08-30-2007 11:43 AM
Adept problem "another process using packaging system database" botia Linux - Newbie 10 05-13-2007 12:04 AM
catching a rogue or unknown process that last miliseconds on an "idle system" Emmanuel_uk Linux - Security 3 06-11-2006 04:42 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel

All times are GMT -5. The time now is 12:28 PM.

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