{"id":6795,"date":"2020-05-31T16:56:14","date_gmt":"2020-05-31T14:56:14","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=6795"},"modified":"2020-05-31T19:42:01","modified_gmt":"2020-05-31T17:42:01","slug":"schreib-und-lesevorgaenge-anzeigen-welcher-prozess-verursacht-i-o","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/schreib-und-lesevorgaenge-anzeigen-welcher-prozess-verursacht-i-o\/","title":{"rendered":"Schreib- und Lesevorg\u00e4nge anzeigen: Welcher Prozess verursacht I\/O?"},"content":{"rendered":"<p>Werkzeuge wie iotop liefern einem eine Momentanaufnahme der Laufwerkslast. Mit <strong>iotop &#8211;only<\/strong> kann auf aktive Prozesse gefiltert werden, die etwas schreiben oder lesen. Das mag f\u00fcr einen ersten Eindruck n\u00fctzlich sein. Doch es fehlen zwei Informationen:<\/p>\n<ol class=\"wp-block-list\">\n<li>Man sieht nicht, auf welches Laufwerk geschrieben wird<\/li>\n<li>Es ist nur eine Momentanaufnahme &#8211; Gerade bei der Fehlersuche m\u00f6chte man jedoch oft wissen, ob zu einem bestimmten Zeitpunkt I\/O Operationen stattfanden<\/li>\n<\/ol>\n<p>Ein konkretes Beispiel ist der Standby-Modus von Festplatten. Wird die Platte auff\u00e4llig h\u00e4ufig aufgeweckt, erh\u00f6ht dies die Parkvorg\u00e4nge (Load_Cycle_Count). Dadurch sinkt die zu erwartende Lebensdauer. Hier m\u00f6chte man wissen, <em>welcher Prozess<\/em> auf ein bestimmtes Laufwerk zugreift. <\/p>\n<h2 class=\"wp-block-heading\">Momentanaufnahme nach Laufwerk mit <strong>iostat<\/strong><\/h2>\n<p>Das erste Problem des fehlenden Laufwerkes kann mit <strong><strong>iostat<\/strong> <\/strong>gel\u00f6st werden. Es zeigt detaillierte Informationen zu allen Platten an. M\u00f6chte man lediglich wissen welches Laufwerk ausgelastet ist, kann iostat m\u00f6glicherweise auch bereits ausreichen.<\/p>\n<p>Es l\u00e4sst sich unter Ubuntu\/Debian wie folgt nachinstallieren:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo apt-get install sysstat\n<\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\">I\/O Zugriffe im Kernel-Log anzeigen<\/h2>\n<p>Die einfachste M\u00f6glichkeit ist, das Logging im Kernel zu aktivieren. Mit Rootzugriff (z.B. durch sudo) in die Datei <strong>block_dump <\/strong>eine 1 schreiben:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\necho 1 &gt; \/proc\/sys\/vm\/block_dump\n<\/pre>\n<\/div>\n<p>Anschlie\u00dfend sieht man die Zugriffe im Kernel-Log. Dies kann bequem mit <strong>dmesg<\/strong> aufgerufen werden:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# dmesg --follow --ctime\n&#x5B;Sun May 31 15:49:33 2020] mysqld(3846): WRITE block 236486656 on sdb1 (8 sectors)\n&#x5B;Sun May 31 15:49:33 2020] jbd2\/sdb1-8(669): WRITE block 487179208 on sdb1 (8 sectors)\n&#x5B;Sun May 31 15:49:33 2020] jbd2\/sdb1-8(669): WRITE block 487179216 on sdb1 (8 sectors)\n&#x5B;Sun May 31 15:49:33 2020] jbd2\/sdb1-8(669): WRITE block 487179224 on sdb1 (8 sectors)\n&#x5B;...]\n<\/pre>\n<\/div>\n<p>Mit grep auf die Datei <strong>\/var\/log\/kern.log<\/strong> kann man nach Zugriffen auf einzelne Platten suchen. <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\negrep &quot;sd(a|d)&quot; \/var\/log\/kern.log\n<\/pre>\n<\/div>\n<p>Dies zeigt beispielweise alle I\/O Vorg\u00e4nge auf sda und sdd an. Nach dem Zeitstempel sieht man den Prozess und dessen Id.<\/p>\n<p><strong>Wichtig<\/strong>: Da <strong>jeder<\/strong> Schreibvorgang protokolliert wird, entsteht ein hohes Aufkommen an Logs. Das Kernellog wird daher in kurzer Zeit recht gro\u00df. Man sollte keinesfalls vergessen, dies nach der Analyse wieder zu deaktivieren:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\necho 0 &gt; \/proc\/sys\/vm\/block_dump\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Werkzeuge wie iotop liefern einem eine Momentanaufnahme der Laufwerkslast. Mit iotop &#8211;only kann auf aktive Prozesse gefiltert werden, die etwas schreiben oder lesen. Das mag f\u00fcr einen ersten Eindruck n\u00fctzlich sein. Doch es fehlen zwei Informationen: Man sieht nicht, auf welches Laufwerk geschrieben wird Es ist nur eine Momentanaufnahme &#8211; Gerade bei der Fehlersuche m\u00f6chte &#8230;<\/p>\n","protected":false},"author":5,"featured_media":6798,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[288,141,392],"class_list":["post-6795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-debian","tag-festplatte","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=6795"}],"version-history":[{"count":3,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6795\/revisions"}],"predecessor-version":[{"id":6801,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6795\/revisions\/6801"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/6798"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=6795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=6795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=6795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}