RE: cpu average load
- From: "Cary Millsap" <cary.millsap@xxxxxxxxxx>
- To: <oracle-l@xxxxxxxxxxxxx>
- Date: Tue, 30 Nov 2004 10:59:11 -0600
I disagree that this advice is difficult to implement in practice, =
because I
implement it in practice frequently. Optimizing Oracle Performance =
pp170-173
illustrates a very simple case that applies nicely to much more =
complicated
Oracle cases. Ironically, I helped diagnose another real-life case of =
this
type just 15 minutes ago.
The Oracle c statistic includes both the utime and stime components of =
the
getrusage return value. (You can *prove* that by intercepting your =
getrusage
calls and manipulating their return data.) Therefore, the "e" time =
that's
not accounted for by any "c" (usr mode CPU plus sys mode CPU consumed by =
the
Oracle kernel) time or "ela" time (mostly time spent asleep awaiting a
syscall return) is going to be a reasonably reliable measure (+/-10%) of
time spent preempted.
What helps my confidence significantly is that over and over again, I =
see
that unaccounted-for time computed in the manner I've described reliably
measures the amount of time that a process spends preempted.
It works. Really.
=20
Cary Millsap
Hotsos Enterprises, Ltd.
http://www.hotsos.com
* Nullius in verba *
Upcoming events:
- Performance Diagnosis 101: 1/4 Calgary
- SQL Optimization 101: 12/13 Atlanta
- Hotsos Symposium 2005: March 6-10 Dallas
- Visit www.hotsos.com for schedule details...
-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx =
[mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Gogala, Mladen
Sent: Tuesday, November 30, 2004 9:19 AM
To: 'cary.millsap@xxxxxxxxxx'; oracle-l@xxxxxxxxxxxxx
Subject: RE: cpu average load
This was a very precise and correct answer, but unfortunately rather =
hard to
Implement in practice. Process preemption or context switching, as it is
sometimes called, happens while CPU is in kernel mode. Kernel mode is
normally spent only on 2 major things:=20
1) context switching
2) paging
CPU being in kernel mode means that OS it taking care of its own health =
and
Happiness and not working on the user request. Commands like ps -lp =
<PID> or
top will give you precise amount of kernel mode spent by your process. =
If
that amount is significant, it warrants further investigation by using =
truss
or strace. BTW, whenever a system service is requested, a context change
happens. It includes things like read, write, stat and alike. The =
mechanism=20
for calling system services is based on "switch mode to kernel" trap. =
System
service number is the 1st argument for the trap handler.
--
Mladen Gogala
Ext. 121
-----Original Message-----
From: Cary Millsap [mailto:cary.millsap@xxxxxxxxxx]=20
Sent: Tuesday, November 30, 2004 9:59 AM
To: oracle-l@xxxxxxxxxxxxx
Subject: RE: cpu average load
The amount of response time that process preemptions are costing your
performance is measured as the amount of response time in an extended =
SQL
trace file that is not accounted for by the sum of your file's c values =
at
recursive depth zero, plus the sum of your file's ela values.
--
http://www.freelists.org/webpage/oracle-l
--
http://www.freelists.org/webpage/oracle-l
- References:
- RE: cpu average load
- From: Gogala, Mladen
Other related posts:
- » RE: cpu average load
- » RE: cpu average load
- » RE: cpu average load
- » RE: cpu average load
- » RE: cpu average load
- » Re: cpu average load
- » Re: cpu average load
- » Re: cpu average load
- » RE: cpu average load
- » Re: cpu average load
- » RE: cpu average load
- » Re: cpu average load
- » RE: cpu average load
- » RE: cpu average load
- RE: cpu average load
- From: Gogala, Mladen