User: Password:
|
|
Subscribe / Log in / New account

Memory seen from a single process

Memory seen from a single process

Posted Sep 1, 2011 1:21 UTC (Thu) by cma (guest, #49905)
Parent article: The x32 system call ABI

A doubt here...

Does x32 will provide for a single process for mapping/seeing more than 2GB of ram?


(Log in to post comments)

Memory seen from a single process

Posted Sep 1, 2011 3:38 UTC (Thu) by foom (subscriber, #14868) [Link]

Yes...4GB!

Memory seen from a single process

Posted Sep 1, 2011 5:18 UTC (Thu) by Tuna-Fish (guest, #61751) [Link]

Since the kernel will always be running x64 and using address space well clear of the first 32 bits, 32-bit user programs running on it always have full 4GB available (well, less the first page usually).

If you need more than 4GB, you should compile your program for native 64 bit.

Memory seen from a single process

Posted Sep 13, 2011 17:43 UTC (Tue) by cma (guest, #49905) [Link]

Thanks! So this could be a problem for apps needing more than 4GB. Like MySQL with larger buffers or a memory based DB. Regards

Memory seen from a single process

Posted Sep 13, 2011 17:51 UTC (Tue) by dlang (subscriber, #313) [Link]

yes, if you have one application that needs more than 4G itself (not counting memory used by the kernel internally, or used by the kernel to buffer disk I/O), then you need to use AMD64, not x32

a large database is a perfect example of a situation where you would want the full 64 bits available.

given these other memory usesin a system, it's very likely that a machine with 6-8G of ram that's dedicated for database use could still be very happy with x32

however, if you are splitting the database up using sharding (where you have multiple database instances, which could live on separate machines, including virtual machines), it's very possible that each one will only need 4G or less of address space even with far more ram.

also, if you have a database like postgres that used multiple processes (instead of multiple threads), you should recognize that each process can have 4G of address space, so unless you have a huge amount of shared memory allocated, 4G per process may be a very comfortable limit.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds