pcp
[Top] [All Lists]

Re: [pcp] Understanding system-level processor performance

To: Nathan Scott <nathans@xxxxxxxxxx>, pcp developers <pcp@xxxxxxxxxxx>
Subject: Re: [pcp] Understanding system-level processor performance
From: William Cohen <wcohen@xxxxxxxxxx>
Date: Mon, 11 Jan 2016 17:44:55 -0500
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <458343327.7169970.1452490401947.JavaMail.zimbra@xxxxxxxxxx>
References: <458343327.7169970.1452490401947.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
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.


Is the processor really using 100Hz (10ms) sampling to estimate the
time processor spends in each state on machines?  Newer x86_64 fedora
kernels have tickless support and relatively new kernels have
CONFIG_HZ=1000.

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"?

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.


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.

-Will

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