Q:

How to know which process is causing high memory usage on DB?

I've got one Onesight alert mail stating below:
Short Description: Onesight Alert: ZEUS DB Monitor (zeus04)
Description: 
Solaris 5.8: vmstat memory(free) - Free Memory for zeus04 2065112   8:06:02 AM IST    2 min 
  Free Memory below 4GB: Value was 3,965,488 , threshold is 4194304.0 - 12:36:02 AM IST 
Upon issuing OS level commands below I got the following understanding:
prstat
This command returned me the top process ID(3578) which is using more CPU. then,
prstat -Lm -p 3578
this command returned me the following output:
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID 
3578 oracle 0.7 2.3 1.6 0.0 0.0 90 4.4 1.5 483 235 1K 0 java/838694 
3578 oracle 0.3 0.0 0.2 0.0 0.0 95 1.5 0.1 52 8 41 0 java/839336 
I thought some Java process would be running so asked the Apps Support team and the said:
we believe this process is related to the Oracle OEM agent Java process
Now how do i drill down the issue and resolve because free memory is going below 2GB almost everyday.
DB environment details:
OS:Solaris 5.8(Unix)
DB version: 10.2.0.5
Memory size:64 GB
Regards,
Ritu

A:

The software you use is out of date. An advantage of that is that there could very well be a solution provided in My Oracle Support. The Oracle OEM agent have lot's of problems in many versions. Prepare for patching the agents or use a daily restart agent procedure. The Oracle OEM agent is part of the Grid Control monitoring infra structure so you could take it down without harming the application that is using the database[s] that the agent is monitoring.

