I'll continue today's RAM usage theme...
I understand from references around the web that, by default, Linux kernels will only allocate a maximum of 3GB of RAM+swap to a single process. I've been writing a program (in Perl) to perform some numerical calculations on very large data sets, and, by being very careful to do things in the order that minimizes the overlap between different pieces of original and calculated data being needed in RAM+swap, and making sure that, as soon as a given list of numbers is finished with, a block ends, so that Perl's garbage collector gets called, I've got the program to run within this limitation (it's now using just over 2GB at peak.)
The trouble is, I've gone about as far as I can with this efficiency drive, and in a couple of weeks, I have to do the same thing, with even bigger data sets. Since I have plenty of physical space (1GB RAM+10GB swap,) I'd like to get the kernel to allocate more to my program. I know there are various patches with names involving "HIGHMEM." My current kernel is 2.6.6, with
# CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_HIGHMEM=y
Would setting CONFIG_HIGHMEM64G=y and recompiling the kernel help me, or do I need to do something tricksier, please?