netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Seger <Mark.Seger@hp.com>
To: util-linux-ng@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
Subject: Collectl now support monitoring Interrupts by CPU
Date: Fri, 29 Feb 2008 08:18:18 -0500	[thread overview]
Message-ID: <47C8061A.6080009@hp.com> (raw)
In-Reply-To: <477FDAA8.2030001@hp.com>

In keeping with the spirit of adding new useful features when they help 
solve real world problems, I've added this ability to collectl as a 
direct result of a problem we were recently having when doing some 
network performance testing.  It turned out all the interrupts were 
being processed by cpu0 (this was on an 8-core system) but all collectl 
told us was the aggregate number!  Once we moved to a NIC/driver that 
supported multiple queues that could distribute interrupts to multiple 
CPUs it only made sense to enhance collectl to let us verify that this 
was indeed happening - I personally find examining /proc/interrupts for 
changes more trouble than it's worth.

In any event, the following is an example of how collectl can present 
this data, first summarized by CPU:

#Time     Cpu0 Cpu1 Cpu2 Cpu3 Cpu4 Cpu5 Cpu6 Cpu7
12:49:55  4828  16K 1000  16K   18  16K  16K    0
12:49:56  4804  16K 1000  16K    0  16K  16K    0
12:49:57  4811  16K 1000  16K   18  16K  16K    0
12:49:58  4789  16K 1000  16K    0  17K  16K   44

and here by the type of the interrupt itself:

# INTERRUPT DETAILS
#          Int    Cpu0   Cpu1   Cpu2   Cpu3   Cpu4   Cpu5   Cpu6   Cpu7 
  Type            Device(s)
12:48:50   082       0      0      0   7731      0      0      0      
0   PCI-MSI-X       eth2 (queue 0)
12:48:50   098       0      0      0      0   2037      0      0      
0   PCI-MSI-X       eth2 (queue 2)
12:48:50   122       0      0   2240      0      0      0      0      
0   PCI-MSI-X       eth2 (queue 5)
12:48:50   138       0   7084      0      0      0      0      0      
0   PCI-MSI-X       eth2 (queue 7)
12:48:50   154       0      0      0      0      0   7723      0      
0   PCI-MSI-X       eth3 (queue 0)
12:48:50   162    9082      0      0      0      0      0      0      
0   PCI-MSI-X       eth3 (queue 1)
12:48:50   178       0      0      0      0      0      0   8253      
0   PCI-MSI-X       eth3 (queue 3)
12:48:50   210       0      0      0      0      0      0      0   
6417   PCI-MSI-X       eth3 (queue 7)
12:48:50   218       1      0      0      0      0      0      0      
0   PCI-MSI         eth0

You can also look at all CPU loads and interrupts together like this:

# SINGLE CPU STATISTICS
#            CPU  USER NICE  SYS WAIT IRQ  SOFT STEAL IDLE INTRPT
07:09:28       0     0    0    0    0    0    0     0  100     16
07:09:28       1     0    0    0    0    0    0     0  100      0
07:09:28       2     0    0    0    0    0    0     0  100    999
07:09:28       3     0    0    0    0    0    0     0  100     16

For those not familiar with collectl, you can collect virtually 
everything all the existing linux 'stat' utilitie provide plus a lot 
more such as processes (including I/O stats), Infininband, Quadrics, 
Slab, Lustre and more.  Plus a lot more feature too numerous to list but 
there's a pretty good summary here - 
http://collectl.sourceforge.net/Features.html

But don't take my word for it, check out the website at 
http://collectl.sourceforge.net/ where you can see a pretty good set of 
examples in the documentation and even follow the tutorial.

-mark

           reply	other threads:[~2008-02-29 13:18 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <477FDAA8.2030001@hp.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47C8061A.6080009@hp.com \
    --to=mark.seger@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=util-linux-ng@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).