{"id":1393,"date":"2012-06-24T18:22:23","date_gmt":"2012-06-24T15:22:23","guid":{"rendered":"http:\/\/www.void.gr\/kargig\/blog\/?p=1393"},"modified":"2012-06-24T18:56:00","modified_gmt":"2012-06-24T15:56:00","slug":"interrupts-top-like-utility-for-linux","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2012\/06\/24\/interrupts-top-like-utility-for-linux\/","title":{"rendered":"itop &#8211; Interrupts &#8216;top-like&#8217; utility for Linux"},"content":{"rendered":"<p>On a 24-core Linux machine I wanted to monitor interrupts\/sec. The reason is quite complicated, let&#8217;s say that there are more than 100.000 interrupts\/sec and I want to monitor who needs what. <\/p>\n<p>First I installed <a href=\"http:\/\/packages.debian.org\/search?keywords=itop\">Debian&#8217;s itop package<\/a>. It didn&#8217;t work at all on the 24-core machine, just showed an empty display. Then I tried a perl itop implementation I found online at a redhat server, let&#8217;s call it <a href=\"http:\/\/et.redhat.com\/~jmh\/tools\/xen\/itop\">redhat&#8217;s itop<\/a>. That still didn&#8217;t work well. Lot&#8217;s of parsing issues and it certainly wasn&#8217;t ready to deal with 24-cores.<\/p>\n<p>So I tweaked it a bit and made it ready for a 24-core server. You can find it online at my github repository: <a href=\"https:\/\/github.com\/kargig\/itop\">kargig&#8217;s itop<\/a><\/p>\n<p>Since displaying 24 columns of continuously changing numbers doesn&#8217;t fit all screens, I added some command line options to the tool.<br \/>\nBy default it shows all interrupts\/sec per CPU if the number of CPU cores is not higher than 8. If it&#8217;s higher than 8 it just displays the total (adding all per core numbers) interrupts\/sec.<br \/>\nCommand line flag &#8216;-a&#8217; forces displaying of ALL cores and command line flag &#8216;-t&#8217; forces displaying just the TOTAL number of interrupts\/sec.<\/p>\n<p>So if you too need to monitor your server&#8217;s interrupts\/sec, give my <a href=\"https:\/\/github.com\/kargig\/itop\">itop<\/a> a try. If you want to make changes, just fork it on github. Simple as that&#8230;I promise to merge any interesting changes\/pull requests you people send me!<\/p>\n<p>oh and here&#8217;s a screenshot of &#8216;itop -t&#8217;<br \/>\n<a href=\"http:\/\/www.void.gr\/kargig\/blog\/wp-content\/itop.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.void.gr\/kargig\/blog\/wp-content\/itop.jpg\" alt=\"\" title=\"itop\" width=\"415\" height=\"664\" class=\"aligncenter size-full wp-image-1395\" srcset=\"https:\/\/www.void.gr\/kargig\/blog\/wp-content\/itop.jpg 415w, https:\/\/www.void.gr\/kargig\/blog\/wp-content\/itop-187x300.jpg 187w\" sizes=\"auto, (max-width: 415px) 100vw, 415px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On a 24-core Linux machine I wanted to monitor interrupts\/sec. The reason is quite complicated, let&#8217;s say that there are more than 100.000 interrupts\/sec and I want to monitor who needs what. First I installed Debian&#8217;s itop package. It didn&#8217;t work at all on the 24-core machine, just showed an empty display. Then I tried [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[3],"tags":[33,485,484,483,595,48,482],"class_list":["post-1393","post","type-post","status-publish","format-standard","hentry","category-linux","tag-debian","tag-interrupts","tag-interrupts-per-second","tag-itop","tag-linux","tag-perl","tag-system-administration"],"aioseo_notices":[],"views":27440,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/1393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=1393"}],"version-history":[{"count":5,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/1393\/revisions"}],"predecessor-version":[{"id":1400,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/1393\/revisions\/1400"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=1393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=1393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=1393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}