Monitoring interrupts with Solaris


The intrstat(1m) utility was introduced in Solaris 10, and allows interrupt activity to be monitored on a system:

$ intrstat 5

device | cpu0 %tim
-------------+---------------
glm#0 | 953 2.6
qfe#0 | 202 1.5
uata#0 | 91 0.2

device | cpu0 %tim
-------------+---------------
glm#0 | 879 2.6
qfe#0 | 198 1.5
uata#0 | 89 0.2

This provides a snapshot of the number of interrupts generated over interval seconds. To get cumulative interrupt activity for a specific period of time, Brendan Gregg’s intrtime D (DTRACE) script can be used:

$ intrtime 60

Interrupt Time(ns) %Time
uata 2869846 0.00
qfe 46331270 0.08
glm 1913715146 3.19
TOTAL(int) 1962916262 3.27
TOTAL(dur) 60008698021 100.00

With these two utilities, you can easily see which devices are busy generating interrupts. This information can also be used to ask questions like “which process is causing the activity in the qfe driver,” or “what SCSI devices are busy in the system,” or “HEY! The SCSI disk drives off the Ultra Wide SCSI controller shouldn’t be in use! Who is accessing them?!?”

DTRACE is da bomb yizo!

This article was posted by Matty on 2005-07-22 21:34:00 -0400 EDT