Check the memory usage, as seen from oracle. Check if any process is consuming high memory. then we can check what that session is doing.
col name format a30
select sid,name,value from v$statname n,v$sesstat s
where n.STATISTIC# = s.STATISTIC# and name like ‘session%memory%’ order by 3 asc;
One thing regarding the inactive sessions is, it is better to set IDLE_TIME in PROFILE or set up DCD(Dead Connection Detection) if it is the problem of client being disconnected and sessions still there.. This helps in cleanup of such sessions..