>> Actually I'm in the process of reducing oracle processes (mostly user processes),
So why don't you start with mentioning that?
>> If I changee vps_chatr_ceiling to 64 M, will it solve my problem?
NO. The program attributes only define HOW memory will be mapped, not how much. This is of course minor effect on memory ( rounding ) but not enough to make a significant impact.
>> So I would like to know what are the kernel parameters that I can tune to bring down to 50 MB of oracle processes.
So tell Oracle to use less, using Oracle knobs. Work with your DBA, this is NOT an SA exercise it is a DBA/performance issue.
With Oracle 9i it introduced a new Oracle parameter called pga_aggregate_target. When the pga_aggregate_target parameter is set and you are using dedicated Oracle connections, Oracle9i will ignore all of the 'good old' PGA parameters in the Oracle file, including sort_area_size, hash_area_size and sort_area_retained_size.
For desperate cases you may also look into shared connections (MTS)
>> in windows using orastack to reduce the stack memory.
Not applicable. In Windows there is this one-process for each oracle instance and each thread needs a pre-allocated stack. On Unix each (shared) connection is a process and the stack will grow as needed. No more, no less.
So far you did not mention the oracle SGA size. Conceivably that is over sized. You want to work with the DBA and STATSPACK (or AWR) to see whether trimming down the SGA has an acceptable performance impact.
>> I suggested to move one instance to a new box.
Sure, that'll help. Or get more memory on the current box. But really either step should only be done after fully understanding the resources needs, which, as I'll mentio for a final time, only the DBA and other Oracle folks can heklp you determine. There is very little value a system administrator can add, other then 'getting out of the way' (shmmax, dbc_min/max, mount direct, ...).
Hope this helps some,
Regards,
Hein van den Heuvel ( at gmail dot com )
HvdH Performance Consulting