cancel
Showing results for 
Search instead for 
Did you mean: 

Changing maxdsiz_64bit

SOLVED
Go to solution
Leam Hall
Frequent Advisor

Changing maxdsiz_64bit

Morning all!

The other week we patched a PA-RISC 11.11 box, and in SAM I had it set the maxdsiz_64bit number to 1.5 times what it was. I entered the number in sam manually, after calculating it out.

However, after the reboot and kernel rebuild, the maxdsiz_64bit is the same as it was. What am I missing? We're due to try again Sunday.

maxdsiz 1073741824 1073741824
maxdsiz_64bit 2147483648 2147483648

I want maxdsiz_64bit to be 3221225472. Do I need to change anything else?

Thanks!

Leam
8 REPLIES
Bill Hassell
Honored Contributor

Re: Changing maxdsiz_64bit

There's nothing to calculate. maxdsiz is the largest size permitted for a program's local data (heap) area. Unless you have bad programs that run wild and grab as much memory as possible, set it to 4GB (4000000000) or even 8 GB. By setting larger, you avoid having to reboot When you exit SAM, it will ask about creating a new kernel. Go ahead and create the new kernel and reboot. If you exit SAM and don't rebuild/reboot, then number is unchanged.


Bill Hassell, sysadmin
Leam Hall
Frequent Advisor

Re: Changing maxdsiz_64bit

Bill,

The reason for the math was to incrementally raise the bar. We're running old servers and I felt moving forward a little at a time would be safer. Since the machine is running Oracle I expect it to crash itself if it takes up everything.

Leam
James R. Ferguson
Acclaimed Contributor
Solution

Re: Changing maxdsiz_64bit

Hi:

> We're running old servers and I felt moving forward a little at a time would be safer. Since the machine is running Oracle I expect it to crash itself if it takes up everything.

Kernel parameters like 'maxdsiz' and 'maxdsiz_64bit' are merely fences. That is, they are the limits beyond which an individual process may not go. For 32-bit processes, 'maxdsiz' is enforced; for 64-bit ones, 'maxdsiz_64bit'.

The aforementioned parameters control the amount of memory that a process can have for its glogal data, arrays, strings and memory allocated with malloc() and sbrk().

Regards!

...JRF...
Bill Hassell
Honored Contributor

Re: Changing maxdsiz_64bit

> Since the machine is running Oracle I expect it to crash itself if it takes up everything.

You can use way beyond all of your memory with no crash. HP-UX will swap out idle processes to make room for additional programs and program growth. If Oracle can't get the amount of RAM that your DBA requests, it will report an out-of-memory error and stop. Making the limit larger does nothing to the programs. They will request whatever they did in the past. The only time a process will hit the old or new limit is when it requests more memory than the limit. Well written programs will report the limitation and terminate.

Note that if you have programs that are reporting out of memory, there are several ways to hit a limit. One is the 32 bit maxdsiz limit. Another is that 32 bit programs have a default limit of just under 1000 MB. This can be changed by recompiling the program to use EXEC_MAGIC program layout. There are other ways to bump a 32 bit program to be able to use more memory, all the way up to 3.75 GB -- but no more. 64 bit programs have no layout limit other than maxdsiz_64.

But in all cases, you must have swap space available to be reserved for the programs in memory. The minimum swap space is about 1/4 of your RAM size but in order to use swap space for idle programs, it's best to have at least 50% to 100% swap space available. Use swapinfo -tam to report the space. You can add more swap space online but with 11.11, you may need to increase the kernel parameter maxswapchunks. Make it 10000 so you don't have to change it again.


Bill Hassell, sysadmin
Leam Hall
Frequent Advisor

Re: Changing maxdsiz_64bit

Thanks! I'll give this a go Sunday and see how things work.

skt_skt
Honored Contributor

Re: Changing maxdsiz_64bit

"they are the limits beyond which an individual process may not go"... if i have set maxdsiz_64bit to 10GB and if i run multiple instances (more than one number of processes) will those processes compete each other for that 10GB OR will each "invidual process" may get 10GB each??
Bill Hassell
Honored Contributor

Re: Changing maxdsiz_64bit

> "they are the limits beyond which an individual process may not go"... if i have set maxdsiz_64bit to 10GB and if i run multiple instances (more than one number of processes) will those processes compete each other for that 10GB OR will each "invidual process" may get 10GB each??

maxdsiz_64 applies to each process. So 100 processes can all ask for 10 GB each for a total of 1000 GB of RAM. Whether you have enough RAM and swap space is a separate issue.


Bill Hassell, sysadmin
skt_skt
Honored Contributor

Re: Changing maxdsiz_64bit

thanks. I was thinking in the same line; But want to confirm from experts.