Memory Swapping - help me make it stop
485386Mar 16 2006 — edited Mar 18 2006Hi All,
I am configuring a new machine with Oracle 10g running a single unicode database (db size is about 2GB) and during testing I am experiencing major memory swaping and my linux server is slowing to a crawl. The top command show 40 or so oracle processes like this:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19774 oracle 16 0 666m 24m 22m R 4.8 1.2 0:04.94 oracle
Each process is grabbing 666m of virtual memory. I have the SGA and other memory parameers sized at:
test.__db_cache_size=452984832
test.__java_pool_size=4194304
test.__large_pool_size=4194304
test.pga_aggregate_target=201326592
test.__shared_pool_size=142606336
sga_target=605028352
The "free" command shows:
total used free shared buffers cached
Mem: 2076488 1937468 139020 0 212308 832272
-/+ buffers/cache: 892888 1183600
Swap: 9767512 12476 9755036
The "vmstat" command shows:
oracle@hans:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- system ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
31 1 12476 77588 199904 935468 0 0 6 6 9 10 2 1 97 0
Do i simply need to reduce my SGA or add ram to my db server? My database tuning skills are beginner. I can't tell if this is happening because of runaway sql statements or because my oracle memory parameters need tweaking. Can anyone point me in the righ direction to reduce the memory swap? I don't know why each process is grabbing 666m of memory. When i query v$sql and v$session i see only 15 sql statement running and these queries run fine in other environments. The only parameter i recently changed was the processes and sessions parameters. I bumped it from 150 to 500 but we control this number on the app server and there are only 122 sessions currently running. I need some general advise on controlling memory allocation.
Any advise would be greatly appreciated.
Thanks,
Dave
null
null