Memory limits in 64-bit kernel?
Just wondering what is the virtual and physical memory limit in 64-bit linux kernel? I know many oses clamp the physical mem size to low values, ie. 8 gigs or so.
Basically it's what the hardware supports.
Obviously no OS can support more physical memory than the hardware does. Virtual memory is another thing entirely. With a 32-bit addressing system (used in most 32-bit processors), only a maximum of 4Gb can be addresed.
As various OSs typically reserve 0.5-2Gb of that for themselves, apps get as little as 2G of address space to play with. Trying to use more memory on 32-bit involves applications manually mapping it in/out as required, even if physical memory is available.
Of course for multitasking OSs, those limits are per process.
But if your OS supports 64-bit addressing, the limit is a lot higher. Probably less than 2^64 bytes, but still very high. You're likely to run out of disc even if you use that entire 100TB RAID array as swap, before you run out of address space.
Mark
Obviously no OS can support more physical memory than the hardware does. Virtual memory is another thing entirely. With a 32-bit addressing system (used in most 32-bit processors), only a maximum of 4Gb can be addresed.
As various OSs typically reserve 0.5-2Gb of that for themselves, apps get as little as 2G of address space to play with. Trying to use more memory on 32-bit involves applications manually mapping it in/out as required, even if physical memory is available.
Of course for multitasking OSs, those limits are per process.
But if your OS supports 64-bit addressing, the limit is a lot higher. Probably less than 2^64 bytes, but still very high. You're likely to run out of disc even if you use that entire 100TB RAID array as swap, before you run out of address space.
Mark
2^64 = 16777216 Terabytes. You're not going to run out of address space anytime soon.
Athlon64 and IntelP4 only make use of 48 address bits for now. Maybe that is extended later on.
For Linux, read at those links:
http://home.earthlink.net/~jknapka/linux-mm/vmoutline.html
http://linux-mm.org/
http://linux-mm.org/mm-links.shtml
http://www.usenix.org/publications/library/proceedings/bos94/full_papers/bonwick.a
Maybe there are some numbers, or have a look into the kernel source.
BTW it is possible to have a virtual address space larger than the physical memory, but it is also possible to have more physical memory than can be addressed in one virtual address space. (i.e. if you have more than 4GB of RAM on a P4)
For Linux, read at those links:
http://home.earthlink.net/~jknapka/linux-mm/vmoutline.html
http://linux-mm.org/
http://linux-mm.org/mm-links.shtml
http://www.usenix.org/publications/library/proceedings/bos94/full_papers/bonwick.a
Maybe there are some numbers, or have a look into the kernel source.
BTW it is possible to have a virtual address space larger than the physical memory, but it is also possible to have more physical memory than can be addressed in one virtual address space. (i.e. if you have more than 4GB of RAM on a P4)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement