Re: To estimate maximum active sessions on my oracle database is reasonable to the approach?

From: Quanwen Zhao <quanwenzhao_at_gmail.com>
Date: Mon, 8 Nov 2021 11:26:38 +0800
Message-ID: <CABpiuuTF+TReEsx5St6cSuLHZQ=mWYDU-qNJxLGJvF76BJ_C4A_at_mail.gmail.com>



Thanks for your thread, Denis 😉. You just click "Reply All" instead of "Reply" then all of people subscribed "Oracle-L" will see our stuff from their emails respectively. not just Google email? I see your email is from yahoo.

Sorry, I have to clarify that my oracle database server has *192* number of *logic
CPUs* (in other words *96 cores* of physical CPUs rather than *382* you mentioned previously). By the way I just quoted *"because an AAS of 1 is equivalent to 100% of a CPU **core"* from

*http://datavirtualizer.com/oracle-cpu-time/*
<http://datavirtualizer.com/oracle-cpu-time/>, *here*
<https://quanwenzhao.files.wordpress.com/2021/11/oracle_cpu_time.png> is
the screenshot.

At least why I cited that AAS (AAS by *per wait class* or *per session_state and wait_class*) has any relationship to *CPU cores or threads* because I see the below *3* graphs from EMCC.

*https://quanwenzhao.files.wordpress.com/2021/11/aas_by_per_wait_class.png* <https://quanwenzhao.files.wordpress.com/2021/11/aas_by_per_wait_class.png>

*https://quanwenzhao.files.wordpress.com/2021/11/aas_by_per_wait_class_2.png* <https://quanwenzhao.files.wordpress.com/2021/11/aas_by_per_wait_class_2.png>

*https://quanwenzhao.files.wordpress.com/2021/11/active_sessions.png* <https://quanwenzhao.files.wordpress.com/2021/11/active_sessions.png>

Best Regards
Quanwen Zhao

denis.sun_at_yahoo.com <dmarc-noreply_at_freelists.org> 于2021年11月8日周一 上午8:33写道:

> Hi, Quanwen Zhao
>
> >> because an AAS of 1 is equivalent to 100% of a CPU core
>
> I don't think AAS has any relationship to the number of CPU cores or the
> utilization of CPU core ( 100% or 0%).
>
> AAS = Average Active Sessions
> AAS = DB Time/Elapsed Time(wall clock)
> DB Time = CPU Time + non-idle wait time
>
> ie if wall clock is 15 min, accumulated DB time from all sessions during
> that 15 min time period is 150 min, then AAS= 10 , it does not matter how
> many CPU cores you have.
>
> When you have 8 CPU cores and you observe you have AAS=11 or count=11 (
> from select count(*) from v$session where state='ACTIVE', I imagine this
> count as AAS in 1 second wall clock time, instantaneous AAS ), From what
> you described, you seemed interpret this as you must have 8 sessions
> on CPU 100%. This is not true completely. It can be one active session
> hold a DML lock on a table row, all other 9 active sessions waiting for
> this lock. nothing to do with CPU count or utilization. ( This is what
> Jonathon Lewis's example tells us. sorry I cannot include
> Jonathon's reply in my reply because I use different emails to
> receive and send to oracle-l)
>
>
> If your intended purpose is to estimate what are the maximum or reasonable
> AAS your database can have. I think only empirical approach makes sense. if
> you have CPU=8 then monitor from AAS=2xCPU= 16; if your CPU=192, I don'
> think monitor from 382 makes sense, instead monitor from 20. Then
> correlating with application metrics.
>
> In one of our production db, we have 24 CPUs, and I receive average active
> session alert greater than 200 from time to time, the system does not scale
> well obviously but no one cares :) no complains, app team seems happy with
> what the database deliver to them.
>
> So I think AAS is a good metrics to monitor db but need to correlate with
> other metrics. ( Look at OEM performance page, AAS with wait event in the
> same graph, this is ideal)
>
> Best regards,
>
> Denis
>

--
http://www.freelists.org/webpage/oracle-l
Received on Mon Nov 08 2021 - 04:26:38 CET

Original text of this message