{"id":12429,"date":"2022-01-31T19:11:50","date_gmt":"2022-01-31T19:11:50","guid":{"rendered":"https:\/\/profi-tutorials.de\/linux\/?p=12429"},"modified":"2022-01-31T19:11:51","modified_gmt":"2022-01-31T19:11:51","slug":"befehl-ionice","status":"publish","type":"post","link":"https:\/\/profi-tutorials.de\/linux\/administration\/befehl-ionice\/","title":{"rendered":"Der Befehl ionice"},"content":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl ionice kennen, welcher unter Linux- \/ UNIX-Betriebssystemen eingesetzt wird, um die Priorit&auml;t eines Prozesses, der das I\/O-Interface des Kernels nutzt, festzulegen. Konkret ist es m&ouml;glich, die I\/O-Scheduling-Klasse und -Priorit&auml;t eines Prozesses auszulesen und festzulegen. Auf diesem Weg kann beispielsweise die Priorit&auml;t eines Kopierprozesses herabgesetzt werden, um die Auslastung des Systems durch diesen Prozess zu mindern.<\/p>\n<h2 id=\"t-1642768006148\">Installation<\/h2>\n<p>Der Befehl ist Teil des Pakets <strong>util-linux<\/strong> und damit auf den meisten Systemen bereits vorinstalliert. Eine manuelle Installation mithilfe von <strong>apt <\/strong>ist jedoch mit dem folgenden Befehl m&ouml;glich:<\/p>\n<pre>apt-get install util-linux<\/pre>\n<h2 id=\"t-1642768006149\">Allgemeine Syntax<\/h2>\n<p>Die allgemeine <a class=\"glossaryLink cmtt_Allgemein cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;Syntax&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;&#8203;Im  Allgemeinen wird unter Syntax ein Regel&#8203;system verstanden, welches zur  Kombination elementarer Zeichen zu zusammengesetzten &#8203;Zeichen in (...)&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/syntax\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">Syntax<\/a> von <strong>ionice <\/strong>lautet:<\/p>\n<pre>ionice [Optionen] [Befehl [Argumente]]<\/pre>\n<p>Bei Ausf&uuml;hrung von <strong>ionice <\/strong>ohne Argumente wird die aktuelle <strong>I\/O-Scheduling-Klasse<\/strong> und <strong>-Priorit&auml;t<\/strong> des laufenden Prozesses abgefragt. Werden dagegen keine Optionen, aber ein Befehl angegeben, so f&uuml;hrt <strong>ionice <\/strong>den Befehl mit den ihm &uuml;bergebenen Argumenten aus. Dabei werden standardm&auml;&szlig;ig die sogenannte <strong>&ldquo;Best-Effort&rdquo;-Scheduling-Klasse<\/strong> sowie die vorgegebene <strong>Priorit&auml;t 4<\/strong> verwendet. Die verf&uuml;gbaren Scheduling-Klassen sind der folgenden Tabelle zu entnehmen (siehe <strong>Option -c<\/strong> f&uuml;r Festlegung der Scheduling-Klasse):<\/p>\n<table data-rows=\"4\" data-cols=\"2\" data-v=\"middle\">\n<thead>\n<tr>\n<th style=\"\"><strong>Klasse<\/strong><\/th>\n<th style=\"\">Beschreibung<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td data-th=\"Klasse\" style=\"\">Idle<\/td>\n<td data-th=\"Beschreibung\" style=\"\">Einem Prozess mit der I\/O-Priorit&auml;tsklasse &ldquo;Idle&rdquo; wird nur dann Zeit f&uuml;r Festplattenzugriffe zugewiesen, wenn kein anderer Prozess diese f&uuml;r einen bestimmten Zeitraum angefordert hat. Daher sollte ein solcher Prozess keinen Einfluss auf die normalen Systemaktivit&auml;ten nehmen. Diese Scheduling-Klasse akzeptiert kein Scheduling-Klassendaten-Argument (Priorit&auml;t).<\/td>\n<\/tr>\n<tr>\n<td data-th=\"Klasse\" style=\"\">Best-Effort<\/td>\n<td data-th=\"Beschreibung\" style=\"\">Die effektive Scheduling-Klasse f&uuml;r jeden Prozess, der keine spezifische I\/O-Priorit&auml;t angefordert hat, ist &ldquo;Best-Effort&rdquo;. Ein Priorit&auml;ts-Argument mit der Wertigkeit 0-7 kann bei dieser Klasse spezifiziert werden. Solche Prozesse, die mit der gleichen Best-Effort-Priorit&auml;t laufen, werden nach dem Round-Robin-Verfahren bedient.<\/td>\n<\/tr>\n<tr>\n<td data-th=\"Klasse\" style=\"\">Realtime<\/td>\n<td data-th=\"Beschreibung\" style=\"\">Unabh&auml;ngig anderer Vorg&auml;nge im System haben Prozesse mit der Scheduling-Klasse &ldquo;Realtime&rdquo; stets Vorrang vor anderen Prozessen bei Festplattenzugriffen. Diese Klasse sollte mit Vorsicht verwendet werden, da sie zur Starvation (Verhungern) anderer Prozesse f&uuml;hren kann. Die Priorit&auml;tsstufen 0-7 erlauben auch hier Einflussnahme auf die Gr&ouml;&szlig;e der Zeitscheibe, die der jeweilige Prozess in jedem Scheduling-Zeitfenster erh&auml;lt. F&uuml;r die Verwendung dieser Scheduling-Klasse sind root-Berechtigungen erforderlich.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>F&uuml;r die Scheduling-Klassen &ldquo;Realtime&rdquo; und &ldquo;Best-Effort&rdquo; ist die Festlegung von <strong>Scheduling-Klassendaten<\/strong> im Wertebereich <strong>0-7<\/strong> erlaubt, wobei <strong>0<\/strong> die h&ouml;chste Priorit&auml;tsstufe ist (siehe <strong>Option -n<\/strong> f&uuml;r Festlegung der Scheduling-Klassendaten). Scheduling-Klassen k&ouml;nnen neben ihren Namen auch mit Nummern angesprochen werden: Keine \/ &ldquo;None&rdquo; <strong>(0)<\/strong>, &ldquo;Realtime&rdquo; <strong>(1)<\/strong>, &ldquo;Best-Effort&rdquo; <strong>(2)<\/strong>, &ldquo;Idle&rdquo; <strong>(3)<\/strong>.<\/p>\n<h5>Beispiel: ionice ohne Optionen<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Dieses Beispiel zeigt die Verwendung von <\/span>ionice <span style=\"font-weight: normal;\">ohne Optionen.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p>ionice<\/p>\n<h6>Ausgabe:<\/h6>\n<p>Es werden Scheduling-Klasse und -Priorit&auml;t des aktuellen Prozesses ausgegeben. In diesem Fall ist die Scheduling-Klasse <strong>&ldquo;none&rdquo;<\/strong> und die Priorit&auml;t <strong>4<\/strong>.<\/p>\n<p>none: prio 4<\/p>\n<h5>Beispiel: ionice mit Befehl<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">In diesem Beispiel wird gezeigt, wie ionice ohne Optionen, aber unter &Uuml;bergabe eines Befehls,&nbsp;<\/span><span style=\"font-weight: normal;\">ausgef&uuml;hrt wird.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p><strong>ionice <\/strong>wird ein Befehl &uuml;bergeben, welcher eine gr&ouml;&szlig;ere Datei von einem externen Speichermedium in das Home-Verzeichnis <strong>\/home\/hellberg\/<\/strong> kopiert. An das Ende des Befehls wird ein <strong>&ldquo;&amp;&rdquo;<\/strong> angeh&auml;ngt, um den Befehl im Hintergrund auszuf&uuml;hren.<\/p>\n<p>ionice cp \/tausch\/debian-10.5.0-amd64-DVD-1.<a class=\"glossaryLink cmtt_Allgemein\"  aria-describedby=\"tt\"  data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;ISO [International Standard Organisation]&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;ISO steht f&uuml;r International Standard Organisation - praktisch das weltweite Gremium f&uuml;r Standardisierung.&lt;\/div&gt;\"  href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/iso\/\"  target=\"_blank\"  data-mobile-support=\"0\"  data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex='0' role='link'>iso<\/a> \/home\/hellberg\/ &amp;<\/p>\n<h6>Ausgabe:<\/h6>\n<p>Die <strong>PID <\/strong>des im Hintergrund gestarteten Prozesses wird ausgegeben. In diesem Fall <strong>2719<\/strong>.<\/p>\n[1] 2719\n<h6>Eingabe:<\/h6>\n<p>Um die f&uuml;r den mit <strong>ionice <\/strong>gestarteten Prozess gesetzten Scheduling-Parameter zu &uuml;berpr&uuml;fen, wird nun <strong>ionice <\/strong>mit der <strong>Option -p<\/strong> aufgerufen. Die zuvor erhaltene <strong>PID <\/strong>wird dabei angegeben.<\/p>\n<p>ionice -p 2719<\/p>\n<h6>Ausgabe:<\/h6>\n<p>Der Prozess hat die Scheduling-Klasse <strong>&ldquo;Best-Effort&rdquo;<\/strong> und die Priorit&auml;t <strong>4<\/strong> &ndash; dies entspricht den erwarteten Standardwerten.<\/p>\n<p>best-effort: prio 4<\/p>\n<h2 id=\"t-1643022213341\">Wichtige Optionen<\/h2>\n<p>Die wichtigsten Optionen des Befehls <strong>ionice <\/strong>werden im Folgenden vorgestellt.<\/p>\n<h3 id=\"t-1642768006151\">-c &ndash; Scheduling-Klasse spezifizieren<\/h3>\n<p>Mit der <strong>Option -c<\/strong> kann die <strong>Scheduling-Klasse<\/strong> anhand ihres Namens oder ihrer Nummer festgelegt werden.<\/p>\n<pre>ionice -c [Klasse] [Befehl [Argumente]]<\/pre>\n<h3 id=\"t-1642768006152\">-n &ndash; Scheduling-Klassendaten spezifizieren<\/h3>\n<p>Die <strong>Scheduling-Klassendaten<\/strong> werden mit der <strong>Option -n<\/strong> spezifiziert, wobei zu beachten ist, dass dies nur dann wirksam ist, wenn die Klasse an dieser Stelle ein Argument (bzw. eine Priorit&auml;t) akzeptiert.<\/p>\n<pre>ionice -c [Klasse] -n [Klassendaten] [Befehl [Argumente]]<\/pre>\n<h3 id=\"t-1642768006153\">-p &ndash; Prozess-ID spezifizieren<\/h3>\n<p>Mithilfe der <strong>Option -p<\/strong> kann eine <strong>Prozess-ID<\/strong> (PID) angegeben werden. Dies ist einerseits n&uuml;tzlich, um die Scheduling-Parameter f&uuml;r einen laufenden Prozess mit einer bestimmten <strong>PID <\/strong>zu setzen. Ein Befehl kann hierbei nicht angegeben werden.<\/p>\n<pre>ionice -p [PID] [Optionen]<\/pre>\n<p>Andererseits kann die Option jedoch auch verwendet werden, um die Scheduling-Parameter eines laufenden Prozesses auszugeben, ohne jegliche &Auml;nderungen vorzunehmen. Es werden dazu keine weiteren Optionen (zum Setzen von Scheduling-Parametern) angegeben.<\/p>\n<pre>ionice -p [PID]<\/pre>\n<h3 id=\"t-1642768006154\">-P &ndash; Prozessgruppen-ID spezifizieren<\/h3>\n<p>Die <strong>Prozessgruppen-ID<\/strong> (PGID) von laufenden Prozessen, deren Scheduling-Parameter gesetzt werden sollen, kann mit der <strong>Option -P<\/strong> angegeben werden. &Auml;hnlich wie auch bei der <strong>Option -p<\/strong> kann kein Befehl spezifiziert werden.<\/p>\n<pre>ionice -P [PGID] [Optionen]<\/pre>\n<p>Werden keine Optionen zum Setzen von Scheduling-Parametern verwendet, so gibt die <strong>Option -P<\/strong> die Scheduling-Parameter der Prozesse mit der angegebenen <strong>PGID <\/strong>aus.<\/p>\n<pre>ionice -P [PGID]<\/pre>\n<h3 id=\"t-1642768006155\">-t &ndash; Fehlschlag ignorieren<\/h3>\n<p>Wurde die <strong>Option -t<\/strong> angegeben, so <strong>ignoriert <\/strong><strong>ionice <\/strong>ein <strong>fehlgeschlagenes Setzen der anforderten Priorit&auml;t<\/strong>. Bei Angabe eines Befehls wird dieser auch dann ausgef&uuml;hrt, wenn das Setzen der gew&uuml;nschten Scheduling-Priorit&auml;t nicht m&ouml;glich war. Auftreten k&ouml;nnen diese Fehler etwa bei unzureichenden Zugriffsrechten oder alten Kernel-Versionen.<\/p>\n<pre>ionice -t [Befehl [Argumente]]<\/pre>\n<h3 id=\"t-1642768006156\">-u &ndash; Benutzer-ID spezifizieren<\/h3>\n<p>Die <strong>Option -u<\/strong> erlaubt die Angabe der <strong>Benutzer-ID<\/strong> (UID) der laufenden Prozesse, f&uuml;r die die Scheduling-Parameter gesetzt werden sollen. Auch hier kann kein Befehl spezifiziert werden.<\/p>\n<pre>ionice -u [UID] [Optionen]<\/pre>\n<p>Wenn keine Optionen zum Setzen der Scheduling-Parameter angegeben werden, dann f&uuml;hrt die <strong>Option -u<\/strong> zur Ausgabe der aktuellen Werte f&uuml;r Prozesse mit der angegebenen <strong>UID<\/strong>.<\/p>\n<pre>ionice -u [UID]<\/pre>\n<p style=\"text-align: center;\">Abonniere JETZT unseren Newsletter!<\/p>\n<p style=\"text-align: center;\">Verpasse nie wieder <strong>neue<\/strong> Beitr&auml;ge und <strong>exklusive Insider-Only-Inhalte!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl ionice kennen, welcher unter Linux- \/ UNIX-Betriebssystemen eingesetzt wird, um die Priorit\u00e4t eines Prozesses, der das I\/O-Interface des Kernels nutzt, festzulegen. Konkret ist es m\u00f6glich, die I\/O-Scheduling-Klasse und -Priorit\u00e4t eines Prozesses auszulesen und festzulegen. Auf diesem Weg kann beispielsweise die Priorit\u00e4t eines Kopierprozesses herabgesetzt werden, um die Auslastung [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":12432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"%%post_title%% %%sep%% %%sitetitle%%","_seopress_titles_desc":"Hier lernen Sie den Befehl ionice kennen, welcher unter UNIX- \/ Linux der Festlegung der Priorit\u00e4t eines Prozesses, der das I\/O-Interface des Kernels nutzt, dient.","_seopress_robots_index":"","footnotes":""},"categories":[8],"tags":[],"class_list":["post-12429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration"],"_links":{"self":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/12429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/comments?post=12429"}],"version-history":[{"count":154,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/12429\/revisions"}],"predecessor-version":[{"id":12600,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/12429\/revisions\/12600"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media\/12432"}],"wp:attachment":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media?parent=12429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/categories?post=12429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/tags?post=12429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}