![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
We have legacy system running Oracle 9.2.0.8. It is being migrated to new M5000 (Solaris 10). We are running Oracle on the physical server, not on Solaris Zone. The server has 128 GB memory, Oracle is configured with 50 GB SGA, 30 GB buffer cache, and 3 GB shared pool. "top" shows that around 80 GB memory is free. Swap is 8 GB, all free. Following Solaris tradition we have several tmpfs filesystems: Filesystem * * * * * kbytes * *used * avail capacity *Mounted on swap * * * * * * * * 18452376 * * 448 18451928 * * 1% * */etc/svc/ volatile swap * * * * * * * * 18451928 * * * 0 18451928 * * 0% * */tmp swap * * * * * * * * 18451992 * * *64 18451928 * * 1% * */var/run This is test server and it is idle, there are no connections to the database, I am the only person connected to the server. When I tried to start Oracle with 70 GB SGA it started but server run out of swap. /var/adm/messages contains: tmpfs: [ID 518458 kern.warning] WARNING: /etc/svc/volatile: File system full, swap space limit exceeded genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 2291 (scopeux) alert.log contains: ORA-04030: out of process memory when trying to allocate 48000 bytes (pga heap,non-vector post process batch) The server stopped responding and we had to restart it. Any suggestion what could be done to avoid this problem? (other than increasing swap to 128 GB) |
#3
| ||||
| ||||
|
|
We have legacy system running Oracle 9.2.0.8. It is being migrated to new M5000 (Solaris 10). We are running Oracle on the physical server, not on Solaris Zone. The server has 128 GB memory, Oracle is configured with 50 GB SGA, 30 GB buffer cache, and 3 GB shared pool. "top" shows that around 80 GB memory is free. Swap is 8 GB, all free. |
|
Following Solaris tradition we have several tmpfs filesystems: |
|
Filesystem kbytes used avail capacity Mounted on swap 18452376 448 18451928 1% /etc/svc/ volatile swap 18451928 0 18451928 0% /tmp swap 18451992 64 18451928 1% /var/run This is test server and it is idle, there are no connections to the database, I am the only person connected to the server. When I tried to start Oracle with 70 GB SGA it started but server run out of swap. |
|
Any suggestion what could be done to avoid this problem? (other than increasing swap to 128 GB) |
#4
| |||
| |||
|
#5
| |||
| |||
|
|
After reading a bit more on the subject I've found that Oracle uses DISM (Dynamic ISM) pages, this can be seen using "pmap -sx": 0000000380000000 * * * 4096 * * * 4096 * * * * *- * * * * *- * 4M rwxs- * *[ dism shmid=0x16 ] 0000000380400000 * 15822848 * * * * *- * * * * *- * * * * *- * *- rwxs- * *[ dism shmid=0x16 ] 0000000746000000 * * 180224 * * 180224 * * * * *- * * * * *- * 4M rwxs- * *[ dism shmid=0x16 ] 0000000751000000 * * * 8192 * * * 8192 * * * * *- * * * * *- * *- rwxs- * *[ dism shmid=0x16 ] 0000000751800000 * * * 8192 * * * 8192 * * * * *- * * * * *- * 4M rwxs- * *[ dism shmid=0x16 ] There is Solaris paper "Dynamic Reconfiguration and Oracle9i Dynamically Resizable SGA", it states that Oracle 9i uses DISM if SGA size > size of its components which is true in our case. Experimenting with another database that has 1 GB SGA I was able to get it to use ISM instead of DISM after increasing db_cache_size: 000000010362C000 * * * * *8 * * * * *8 * * * * *8 * * * * *- * 8K rwx-- * *[ heap ] 0000000380000000 * *1069056 * *1069056 * * * * *- * *1069056 * 4M rwxsR * *[ ism shmid=0x2000036 ] FFFFFFFF7D100000 * * * * *8 * * * * *8 * * * * *8 * * * * *- * 8K rwx-- * *[ anon ] FFFFFFFF7D102000 * * * * *8 * * * * *- * * * * *- * * * * *- * *- rwx-- * *[ anon ] |
![]() |
| Thread Tools | |
| Display Modes | |
| |