I have a problem, all server processes have 26% of memory total in the server, about 317Mb, the server have 1152 MB of phisical memory.
when there are many server processes, the server begin to paging and the performance down.
I want to know why the server processes take that memory and if any oracle parameter is used to limit this memory.
how can i change the size of that memory.
This is an examplo of these server process.
$ /usr/ucb/ps -aux | grep oracleredsau | head
ora734 22389 12.1 26.5324152304256 ? S 03:07:48 64:40 oracleredsau (DESC
ora734 22390 7.8 26.7325040307176 ? R 03:07:48 10:38 oracleredsau (DESC
ora734 28341 3.7 26.4321704303512 ? S 09:38:09 3:01 oracleredsau (DESC
ora734 4873 1.6 26.4321432303184 ? S 12:18:43 0:03 oracleredsau (LOCA
ora734 27279 1.1 26.8325696307600 ? S 08:42:42 0:34 oracleredsau (DESC
ora734 4869 0.9 26.4321432303184 ? S 12:18:26 0:04 oracleredsau (LOCA
ora734 1164 0.9 26.4321808303776 ? S 11:29:02 0:50 oracleredsau (DESC
ora734 27276 0.7 26.8325520307872 ? S 08:42:39 0:38 oracleredsau (DESC
ora734 27272 0.6 26.7324224306416 ? S 08:42:36 0:31 oracleredsau (DESC
ora734 27946 0.4 26.4321744303864 ? S 09:19:58 0:56 oracleredsau (DESC
The process size on Unix is basically contributed by the SGA size. Check to make sure that your sort retain size had been set appropriately. It should be less than the sort_area_size.
Hope I'm on the same page as you.
It looks like you are running in dedicated server mode and not MTS mode. In a dedicated server environment, each session allocates its own memory. I would check session level parameters such as sort_area_size to make sure they are not too big.
Otherwise, if you are running a large number of sessions, you might want to consider using MTS with a larger SGA.