{"id":10716,"date":"2022-01-05T16:29:49","date_gmt":"2022-01-05T16:29:49","guid":{"rendered":"https:\/\/profi-tutorials.de\/linux\/?p=10716"},"modified":"2022-01-13T10:31:29","modified_gmt":"2022-01-13T10:31:29","slug":"befehl-cpulimit","status":"publish","type":"post","link":"https:\/\/profi-tutorials.de\/linux\/administration\/befehl-cpulimit\/","title":{"rendered":"Der Befehl cpulimit"},"content":{"rendered":"<p>Dieser Beitrag behandelt den Befehl cpulimit, welcher unter UNIX- \/ Linux-Betriebssystemen verwendet wird, um die CPU-Auslastung, die durch einen Prozess erzeugt wird, zu begrenzen. Konkret wird dazu der maximale prozentuale Anteil der CPU-Zeit, der durch den Prozess inklusive seiner Kindprozesse verwendet wird, limitiert. Damit unterscheidet sich cpulimit auch von dem Befehl nice, welcher lediglich der Festlegung der Priorit&auml;t eines Prozesses dient.<\/p>\n<p>Wichtig zu beachten ist, dass die maximal verf&uuml;gbare prozentuale CPU-Zeit bei N Prozessoren oder Prozessorkernen in einem Rechner N*100 Prozent, also ein N-faches von 100 Prozent, betr&auml;gt. Weiterhin sind bei der Begrenzung nicht-eigener Prozesse Root-Berechtigungen erforderlich. Zur Begrenzung der genutzten CPU-Zeit sendet cpulimit ein SIGSTOP Signal an den Prozess, um ihn zu stoppen, wenn er mehr als die erlaubte Zeit verwendet. Nach einem kurzen Zeitintervall wird der Prozess dann wieder durch Senden eines SIGCONT-Signals gestartet. Auf diesem Weg kontrolliert cpulimit, wie viel CPU-Zeit der Prozess verwendet. Das Vorgehen kann zu irref&uuml;hrenden Job-Kontrollmeldungen f&uuml;hren, die anzeigen, dass der Job gestoppt wurde. Er wurde zwar tats&auml;chlich gestoppt, aber daraufhin direkt wieder gestartet. Auch Probleme mit interaktiven Shells, die SIGSTOP \/ SIGCONT erkennen oder anderweitig darauf angewiesen sind, k&ouml;nnen auftreten.<\/p>\n<h2 id=\"t-1640259041463\">Installation<\/h2>\n<p>Der Befehl <strong>cpulimit <\/strong>ist in der Regel nicht standardm&auml;&szlig;ig auf Systemen installiert. Die Installation erfolgt mithilfe von <strong>apt <\/strong>mit dem folgenden Befehl:<\/p>\n<pre>apt-get install cpulimit<\/pre>\n<p>N&auml;here Informationen zur Paket- und Quellenverwaltung mit <strong>apt <\/strong>k&ouml;nnen Sie <a href=\"https:\/\/profi-tutorials.de\/linux\/installation\/paket-verwaltung-apt\/\" target=\"_blank\" style=\"outline: none;\" rel=\"noopener\">in unserem Beitrag dazu nachlesen<\/a>.<\/p>\n<h2 id=\"t-1640259041464\">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>cpulimit <\/strong>lautet folgenderma&szlig;en:<\/p>\n<pre>cpulimit [Ziel] -l [Max Prozent] [Optionen]<\/pre>\n<p>Das Ziel gibt an, welcher Prozess begrenzt werden soll und muss einen der folgenden Werte annehmen:<\/p>\n<table data-rows=\"4\" data-cols=\"2\" data-v=\"middle\">\n<thead>\n<tr>\n<th style=\"\">\n<p style=\"\">Ziel<\/p>\n<\/th>\n<th style=\"\">\n<p style=\"\">Beschreibung<\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td data-th=\"Ziel\" style=\"\">\n<p>-p [PID]\n<\/p><\/td>\n<td data-th=\"Beschreibung\" style=\"\">\n<p>Spezifiziert den zu begrenzenden Prozess mithilfe seiner Prozess-ID (PID).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-th=\"Ziel\" style=\"\">\n<p>-e [Datei]\n<\/p><\/td>\n<td data-th=\"Beschreibung\" style=\"\">\n<p>Spezifiziert den zu begrenzenden Prozess anhand des Namens der zugeh&ouml;rigen ausf&uuml;hrbaren Datei.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-th=\"Ziel\" style=\"\">\n<p>-P [Pfad]\n<\/p><\/td>\n<td data-th=\"Beschreibung\" style=\"\">\n<p>Spezifiziert den zu begrenzenden Prozess anhand des absoluten Pfads zur zugeh&ouml;rigen ausf&uuml;hrbaren Datei.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Alternativ ist es auch m&ouml;glich, ein anderes Programm mit <strong>cpulimit <\/strong>zu starten und die Begrenzung der CPU-Zeit dann direkt auf dem neuen Prozess vorzunehmen. Hierzu wird der Befehl zum Starten des Programms mit allen seinen Optionen als letzte Option von <strong>cpulimit <\/strong>hinter zwei <strong>Minuszeichen &ldquo;&ndash;&ldquo;<\/strong> angegeben:<\/p>\n<pre>cpulimit -l [Max Prozent] [Optionen] -- [Befehl]<\/pre>\n<p>Es ist zu beachten, dass die Beendigung der Ausf&uuml;hrung von <strong>cpulimit <\/strong>nicht automatisch auch den von ihm gestarteten und begrenzten Prozess beendet. Es wird lediglich die Begrenzung aufgehoben.<\/p>\n<p>Schlie&szlig;lich ist die <strong>Option -l<\/strong>, welche die maximale prozentuale CPU-Zeit des Prozesses spezifiziert, notwendig. Sie ist also nicht, wie die &uuml;brigen Optionen, optional. Der Wertebereich des hierf&uuml;r ben&ouml;tigten Parameters ist 1 und aufsteigend.<\/p>\n<h5>Beispiel: cpulimit mit PID<\/h5>\n<h6>Eingabe:<\/h6>\n<p>cpulimit -p 2064 -l 30<\/p>\n<h6>Bedeutung:<\/h6>\n<p>Der Prozess mit der Prozess-ID (PID) <strong>2064 <\/strong>wird auf eine maximale prozentuale Benutzung der CPU-Zeit von <strong>30 Prozent<\/strong> begrenzt.<\/p>\n<h5>Beispiel: cpulimit mit Dateiname<\/h5>\n<h6>Eingabe:<\/h6>\n<p>cpulimit -e rsync -l 50<\/p>\n<h6>Bedeutung:<\/h6>\n<p>Der Prozess, der die ausf&uuml;hrbare Datei mit dem Namen <strong>&ldquo;rsync&rdquo;<\/strong> hat, wird auf eine maximale prozentuale Benutzung der CPU-Zeit von <strong>50 Prozent<\/strong> begrenzt.<\/p>\n<h5>Beispiel: cpulimit mit absoluter Pfadangabe<\/h5>\n<h6>Eingabe:<\/h6>\n<p>cpulimit -P \/usr\/bin\/rsync -l 50<\/p>\n<h6>Bedeutung:<\/h6>\n<p>Der Prozess, welcher die ausf&uuml;hrbare Datei mit dem absoluten Dateipfad <strong>&ldquo;\/usr\/bin\/rsync&rdquo;<\/strong> verwendet, &nbsp;wird auf eine maximale prozentuale Benutzung der CPU-Zeit von <strong>50 Prozent<\/strong> begrenzt.<\/p>\n<h2 id=\"t-1640259041465\">Wichtige Optionen<\/h2>\n<p>Im Folgenden lernen Sie die wichtigsten Optionen des Befehls <strong>cpulimit <\/strong>kennen.<\/p>\n<h3 id=\"t-1640259041470\">-q &ndash; &ldquo;Leise&rdquo;-Modus<\/h3>\n<p>Die <strong>Option -q<\/strong> wird verwendet, um <strong>cpulimit <\/strong>in einem sogenannten &ldquo;Leise&rdquo;-Modus (quiet mode) zu starten. In diesem Modus werden ausschlie&szlig;lich Fehlermeldungen ausgegeben.<\/p>\n<pre>cpulimit [Ziel] -l [Max Prozent] -q<\/pre>\n<h3 id=\"t-1640259041474\">-v &ndash; Ausf&uuml;hrliche Ausgabe<\/h3>\n<p>Eine ausf&uuml;hrliche Ausgabe von Statistiken zum Prozess ist mit der <strong>Option -v<\/strong> zu erreichen. Es werden zyklisch Werte f&uuml;r <strong>&ldquo;%CPU&rdquo;<\/strong>, <strong>&ldquo;work quantum&rdquo;<\/strong>, <strong>&ldquo;sleep quantum&rdquo;<\/strong> und <strong>&ldquo;active rate&rdquo;<\/strong> ausgegeben.<\/p>\n<pre>cpulimit [Ziel] -l [Max Prozent] -v<\/pre>\n<h5>Beispiel: Option -v<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Dieses Beispiel zeigt die ausf&uuml;hrliche Ausgabe mit der <\/span>Option -v<span style=\"font-weight: normal;\">.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p style=\"\">Es soll ein Prozess mit der <strong>PID 2387&nbsp;<\/strong>auf eine maximale prozentuale CPU-Zeit von <strong>30 Prozent<\/strong> begrenzt werden. Zus&auml;tzlich wird die <strong>Option -v<\/strong> angeh&auml;ngt.<\/p>\n<p>cpulimit -p 2387 -l 30 -v<\/p>\n<h6>Ausgabe:<\/h6>\n<p>Der Ausgabe ist zu Beginn die <strong>Anzahl von cpulimit erkannter CPUs<\/strong>, die <strong>Priorit&auml;t des Prozesses<\/strong> sowie seine <strong>PID <\/strong>zu entnehmen. Im Anschluss folgt zyklisch die Ausgabe der Werte <strong>&ldquo;%CPU&rdquo;<\/strong>,&nbsp;<strong>&ldquo;work quantum&rdquo;<\/strong>,&nbsp;<strong>&ldquo;sleep quantum&rdquo;<\/strong>&nbsp;und&nbsp;<strong>&ldquo;active rate&rdquo;<\/strong>.<\/p>\n<p><span><img decoding=\"async\" alt=\"befehl-cpulimit-beispiel-1\" data-id=\"10800\" width=\"656\" data-init-width=\"900\" height=\"270\" data-init-height=\"370\" title=\"befehl-cpulimit-beispiel-1\" loading=\"lazy\" src=\"https:\/\/profi-tutorials.de\/linux\/wp-content\/uploads\/sites\/3\/2021\/12\/befehl-cpulimit-beispiel-1.jpg\" data-width=\"656\" data-height=\"270\"\/><\/span><\/p>\n<h3 id=\"t-1640259041475\">-z &ndash; Lazy-Modus<\/h3>\n<p>Mit dem Lazy-Modus ist es m&ouml;glich, <strong>cpulimit <\/strong>zu beenden, wenn es keinen entsprechenden Prozess gibt oder dieser beendet wurde. Wird die Option nicht angegeben, so l&auml;uft <strong>cpulimit <\/strong>weiter, bis es beendet wird.<\/p>\n<pre>cpulimit [Ziel] -l [Max Prozent] -z<\/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>Dieser Beitrag behandelt den Befehl cpulimit, welcher unter UNIX- \/ Linux-Betriebssystemen verwendet wird, um die CPU-Auslastung, die durch einen Prozess erzeugt wird, zu begrenzen. Konkret wird dazu der maximale prozentuale Anteil der CPU-Zeit, der durch den Prozess inklusive seiner Kindprozesse verwendet wird, limitiert. Damit unterscheidet sich cpulimit auch von dem Befehl nice, welcher lediglich der [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":10719,"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 cpulimit kennen, welcher unter UNIX- \/ Linux dazu verwendet wird, um die durch einen Prozess erzeugte CPU-Auslastung zu begrenzen.","_seopress_robots_index":"","footnotes":""},"categories":[8],"tags":[],"class_list":["post-10716","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\/10716","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=10716"}],"version-history":[{"count":100,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/10716\/revisions"}],"predecessor-version":[{"id":11726,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/10716\/revisions\/11726"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media\/10719"}],"wp:attachment":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media?parent=10716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/categories?post=10716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/tags?post=10716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}