Showing results for 
Search instead for 
Did you mean: 




Hi All
If I want to increase the SGA for each Oracle instance to 1.25 GB I need to increase the
shared memory allocation.. What kernel params would be changed??

hpux 11 / oracle 8.1.7 / 4gb memory
Rammig Claus
Frequent Advisor


Hi Michael,

shmmax could be increased.
If you have HPUX11i, you can make this online.
But caution, if you run a 32bit application, shmmax must be lower than 4GB.

Best regards ...
No risc no fun


Hi Claus
here is current setting..
its is 32 bit
max_async_ports 50
max_fcp_reqs 512
max_mem_window 0
max_thread_proc 256
maxdsiz 0X40000000
maxdsiz_64bit 0X0000000050000000
maxfiles 2048
maxfiles_lim 2048
maxqueuetime 0
maxssiz 0X01500000
maxssiz_64bit 0X00900000
maxswapchunks 1024
maxtsiz 0X09000000
maxtsiz_64bit 0X0000000050000000
maxuprc 2000
maxusers 400
maxvgs 10
mesg 1
minfree 0
modstrmax 500
msgmap (2+MSGTQL)
msgmax 8192
msgmnb 16384
msgmni 180
msgseg 2048
msgssz 8
msgtql 40
nbuf 0
ncallout (16+NPROC)
ncdnode 150
nclist (100+16*MAXUSERS)
ndilbuffers 30
netisr_priority -1
netmemmax 0
nflocks 1000
nhtbl_scale 0
ninode ((NPROC+16+MAXUSERS)+32+(2*NPTY))
nkthread (((NPROC*7)/4)+16)
nni 2
no_lvm_disks 0
nproc (20+16*MAXUSERS)
npty 400
nstrpty 400
nstrtel 400
nswapdev 10
nswapfs 10
nsysmap ((NPROC)>800?2*(NPROC):800)
nsysmap64 ((NPROC)>800?2*(NPROC):800)
num_tachyon_adapters 5
o_sync_is_o_dsync 0
page_text_to_local 0
pfdat_hash_locks 128
public_shlibs 1
region_hash_locks 128
remote_nfs_swap 0
rtsched_numpri 32
scroll_lines 100
scsi_maxphys 1048576
sema 1
semaem 16384
semmap (SEMMNI+2)
semmni 1800
semmns 4096
semmnu 600
semume 10
semvmx 32767
sendfile_max 0
shmem 1
shmmax 0X70000000
shmmni 300
shmseg 120
Rammig Claus
Frequent Advisor


Hi Mike,

lookds ok.
But when you are running more 32bit application on a 64bit operating system it can be useful starting each in its own memory window.
See the manpage of setmemwindow.
Therefore the kernelparameter max_mem_window must be increased.

No risc no fun
Bill Hassell
Honored Contributor


Look through the ITRC Forums for threads about SGA and 32bit versions of Oracle. You can increase the shared memory maximum up to 1.75 Gb is you like but Oracle can't get it if it is a 32bit application (HP-UX can be 64bits but it won't help Oracle 32bit). The 32bit Oracle code must share a single area with all other shared libraries, memory mapped files and other shared memory segments...which means it will likely fail to get even 900 megs inb a single call. Oracle requests shared memory larger than about 1Gb in 1Gb chunks.

Bottom line: run Oracle 64bit and make sure you have about 4Gb of RAM. Then SGA will not have any practical limits.

Bill Hassell, sysadmin
T G Manikandan
Honored Contributor


SHMMAX is the kernel parameter

If you are running 32 bit Oracle on 32 bit HP-UX then SMMMAX cannot be greater than 1GB eventhough you have lots of available memory on the system.
32 bit Oracle on 64 bit HP-UX SHMMAX can be set to any valid value but still the restriction applies with the 32 bit executables which can only access 960 MB of memory on the system (hpux)

If you are running 64bit oracle on 64 bit Hpux then SHMMAX can be set to any value and the SGA can be increased as required.

Bill Hassell
Honored Contributor


Just to clarify: 960 megs is the maximum for a standard 32bit executable. By linking the executable (or using chatr), two memory quadrants may be combined for a possible 1750 megs of addressable memory in shared memory. This is called SHARE_MAGIC.

But the issues concerning memory fragmentation due to shared libraries, memory mapped files and shared memory still exist using a single 32bit map. There is a workaround: memory windows. With appropriate patches, you can reserve a private window for each Oracle instance.

Bill Hassell, sysadmin