pcp
[Top] [All Lists]

Re: [pcp] Understanding system-level processor performance

To: William Cohen <wcohen@xxxxxxxxxx>
Subject: Re: [pcp] Understanding system-level processor performance
From: Nathan Scott <nathans@xxxxxxxxxx>
Date: Mon, 11 Jan 2016 17:58:56 -0500 (EST)
Cc: pcp developers <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <56943067.4060703@xxxxxxxxxx>
References: <458343327.7169970.1452490401947.JavaMail.zimbra@xxxxxxxxxx> <56943067.4060703@xxxxxxxxxx>
Reply-to: Nathan Scott <nathans@xxxxxxxxxx>
Thread-index: Fk9ataRWTUS5UcOrhCtDxFxElZ0Zjw==
Thread-topic: Understanding system-level processor performance
Hey Will,

----- Original Message -----
> On 01/11/2016 12:33 AM, Nathan Scott wrote:
> > Hi all,
> > 
> > I recently spent some time updating the tutorial that Ken (IIRC)
> > originally wrote on system-level CPU performance analysis ...
> > 
> > http://www.pcp.io/docs/howto.cpuperf.html
> > 
> > Particularly, numerous updates centered on how these things work
> > in the Linux kernel (as opposed to other UNIX kernels documented
> > previously).  Over time we're planning on updating the other how-to
> > docs, especially the disk howto.  There's also been talk of process-
> > level and system-level network analysis with PCP as how-tos, maybe
> > even a memory-focused analysis how-to.
> > 
> > If anyone has suggestions and/or corrections for the above updated
> > processor how-to doc, or would like to contribute how-tos related to
> > using PCP for analysis, please let me know.
> > 
> > cheers.
> > 
> > --
> > Nathan
> 
> Hi Nathan,
> 
> I look over the webpage and have a few comments.
> 

Thanks!

> Is the processor really using 100Hz (10ms) sampling to estimate the
> time processor spends in each state on machines?

Yeah - "commonly called 100 times" is the phrase used there, because of
these variances (and also the reference to kernel.all.hz) - it could be
more explicit though.

>  Newer x86_64 fedora
> kernels have tickless support and relatively new kernels have
> CONFIG_HZ=1000.

*nod* - I should also look into how tickless mode affects this discussion
and add in some details.

> I am confused how are things that "the state is both nice and
> guest_nice" and "the stae is both user and guest" are accounted for
> when "exactly one state is asigned for each CPU at each clock
> interrupt"?

Heh - the "exactly one" reference is a left over from earlier revisions of
the doc andfrom (all non-Linux) platforms where that is true - good catch,
will fix up, taa.

> Table 1 Raw PCP CPU metrics doesn't quite match up with what is mentioned
> earlier in the text and is listed as available:
> 
> $ rpm -q pcp
> pcp-3.10.9-1.fc23.x86_64
> $ pminfo kernel.all.cpu
> kernel.all.cpu.user
> kernel.all.cpu.nice
> kernel.all.cpu.sys
> kernel.all.cpu.idle
> kernel.all.cpu.intr
> kernel.all.cpu.steal
> kernel.all.cpu.guest
> kernel.all.cpu.vuser
> kernel.all.cpu.guest_nice
> kernel.all.cpu.vnice
> kernel.all.cpu.wait.total
> kernel.all.cpu.irq.soft
> kernel.all.cpu.irq.hard
> 
> I see the additional metrics mentioned later in the writeup, but it is
> a little confusing how the subsetting is being done.  Initially it
> sounded like only the metrics in Table 1 were raw metrics available.

Oh OK - I'll try to reword that to be more clear.

> For the equations would it be possible to show the units in there for
> the metrics and the 1000?  Just thinking back to college physics and
> engineering classes always harping to include units in calculations as
> a check to make sure that something wasn't left out.

Yep, good point - the text mentions milliseconds, but that's easily missed
or not clear in the equations - I'll add it to the equations directly.

Thanks!

--
Nathan

<Prev in Thread] Current Thread [Next in Thread>