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!

Leave a Reply

Your email address will not be published. Required fields are marked *