We are in process of doing performance forecasting for our database (i.e how much load we can take with current system and after howmany %of load we will see performance degradation), in which we were supposed to consider CPU/Memory/I/O.. etc. At first i picked the Host CPU utilization data fromĀ dba_hist_sysmetric_summary view. As i was not much aware about the application metric which drive CPU in this system, So I was planning to map the CPU trend with the 'User Calls Per Sec' parameter as it captures total parse+fetch_execute calls. And then, will calculate the factor between which will help in estimating/forecasting the future capacity.
But during this exercise , the trend which i got for 'Host CPU Utilization (%)' and 'User Calls Per Sec' from dba_hist_sysmetric_summary is not matching with each other, which is bit surprising for me. Then i think it may be due to some other thing might be running in same database , i captured 'CPU usage per Sec" , which shows the CPU consumed by this database only, but still this trend is not matching with the 'User Calls Per Sec' trend but matches with the 'Host CPU Utilization (%)' trend.
Now digging down to the sql queries during the peak CPU utilization, i found those were generated from some specific reporting schema/user, so its kind of clear to me that the reporting queries driving the CPU in this system, but still i am struggling how can i correctly map it with the DB resources like CPU/Memory/I/o.. etc. Is it that, i need to collect the COUNT of the sessions by the schema_name/PARSING_SCHEMA_NAME from historical view (Dba_hist_active_session_history or Dba_hist_sqlstat), and that would be correct one to refer?
Wanted to know, if its correct way to estimate the future DB resource usage , and how to proceed in above scenario?