X-DoSt-X
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
Hallo, ich habe gelegentlich ein Shell-Programm zu laufen, was die CPU mit 70% plus iowait mit 30% auslastet. Dann geht immer kaum noch etwas anderes. Gibt es eine Möglichkeit (mit Mitteln der Shell), dieses Programm so einzugrenzen, dass es etwa nur 35% CPU + 15% iowait (oder weniger) braucht (und dafür natürlich länger läuft)?
|
greenmoon
Anmeldungsdatum: 10. März 2010
Beiträge: 269
|
Keine fertige Lösung, aber vielleicht eine Richtung. Mit dem nice Wert kannst du die Priorität so ändern, dass andere Processe bevorzugt werden.
|
X-DoSt-X
(Themenstarter)
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
greenmoon schrieb: Keine fertige Lösung, aber vielleicht eine Richtung. Mit dem nice Wert kannst du die Priorität so ändern, dass andere Processe bevorzugt werden.
Danke für die Antwort. Der Prozess läuft schon mit Priorität +19. Aaaber - auf der Seite von nice steht was von cpulimit. Werde das mal testen.
|
X-DoSt-X
(Themenstarter)
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
cpulimit scheint recht gut zu funktionieren. Allerdings nur, wenn es als root läuft, und der PC nicht insgesamt zu stark ausgelastet ist.
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2503
|
Mich würde an der Stelle mal interessieren, ob es wirklich die CPU-Last ist, die dein System „langsam“ macht, oder ob es das I/O-Wait ist. Es gibt übrigens auch noch „ionice“ als „nice“-Pendant für das I/O-Scheduling. Wie „misst“ du das Phänomen eigentlich? Vermutlich ist bei dir auch Autogrouping aktiviert. Das war dieser „200-Zeilen-Wunderpatch“, der ca. 2012 aufgenommen wurde. Der führt zu lustigen Effekten in Verbindung mit „nice“. Kannst du mal gucken, was „cat /proc/sys/kernel/sched_autogroup_enabled “ ausgibt? (Ich hoffe, der Pfad heißt bei Ubuntu 12.04 schon so.)
|
X-DoSt-X
(Themenstarter)
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
Vain schrieb: Mich würde an der Stelle mal interessieren, ob es wirklich die CPU-Last ist, die dein System „langsam“ macht, oder ob es das I/O-Wait ist. Es gibt übrigens auch noch „ionice“ als „nice“-Pendant für das I/O-Scheduling. Wie „misst“ du das Phänomen eigentlich?
Ich „messe“ das Phänomen mit dem System Load Indicator in meinem Panel und mit meinem Gefühl, was mir sagt, dass das einfach zu Lange dauert. 😮
Vermutlich ist bei dir auch Autogrouping aktiviert. Das war dieser „200-Zeilen-Wunderpatch“, der ca. 2012 aufgenommen wurde. Der führt zu lustigen Effekten in Verbindung mit „nice“. Kannst du mal gucken, was „cat /proc/sys/kernel/sched_autogroup_enabled “ ausgibt? (Ich hoffe, der Pfad heißt bei Ubuntu 12.04 schon so.)
$ cat /proc/sys/kernel/sched_autogroup_enabled
1 „Lustige Effekte“ in Verbindung mit „nice“ habe ich schon einige Male erlebt, z.B. dass Programme mit nice +19 wesentlich schneller fertig sind als mit nice 0.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13127
|
Wenn man sich anschaut, wie cpulimit arbeitet, dann sieht man, dass aktiv mit Signalen (SIGSTOP und SIGCONT) gearbeitet wird. Das finde ich nicht so elegant, weil es letztlich nicht gut mit dem Scheduler integriert ist. Außerdem, wenn der cpulimit -Prozess stirbt, hängt entweder der andere gestoppt oder läuft unbegrenzt - je nachdem, in welchem Augenblick cpulimit stirbt. Es gibt Alternativen, die beste davon sind m.E. Cgroups, weil damit der Scheduler einen Prozess nur ausbremst, falls er anderen Prozessen zu viele Ressourcen abzieht. Auf einem ansonsten unbeschäftigten System will man ja einem Prozess alle Ressourcen überlassen, damit er möglichst schnell seine Arbeit machen kann. Nachteil ist die aufwändigere Konfiguration. Vorteil ist, dass es ein Kernel-Feature ist und damit verlässlich funktioniert.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, ionice ist übrigens im Wikiartikel schedutils beschrieben. Vielleicht bringt ja auch der Einsatz von chrt (ist auch im Artikel beschrieben) was. Gruß, noisefloor
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2503
|
X-DoSt-X schrieb: $ cat /proc/sys/kernel/sched_autogroup_enabled
1
Testweise mal mit dem Kernelparameter „noautogroup“ zu booten und dann die Situation nochmal zu betrachten, könnte aufschlussreich sein. Wie verhält sich das System dann? Ist die Last auf einmal überhaupt kein Problem mehr oder ändert sich gar nichts? Vielleicht liefert das einen Hinweis darauf, in welche Richtung man weiter überlegen könnte. Die von rklm genannten cgroups wären (möglicherweise in Verbindung mit systemd, dann ist die Konfiguration einfacher) schon eine recht elegante Lösungsmöglichkeit für dein Problem.
|
X-DoSt-X
(Themenstarter)
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
Sicher sind cgroups eine recht elegante Lösungsmöglichkeit für mein Problem. Jedoch mag ich auch darauf schauen, dass es sich hier nur um etwa 10…20 Mal ca. eine Minute im Monat handelt, wo es auftritt. Weiters hat mir die Bemerkung von Vain zu denken gegeben: "ob es wirklich die CPU-Last ist"; der Hauptspeicher ist nämlich auch (jedes mal?) recht voll und kswapd0 mit bis zu 1…5…?% aktiv. ionice habe ich getestet, allerdings habe ich jetzt überhaupt keine Möglichkeit mehr, da irgendwas zu "messen" und kann wirklich nur nach meinem Gefühl gehen. Und das sagt mir: sehr gering bis mäßig besser. EDIT: Von cpulimit sehe ich wegen der Probleme mit SIGSTOP/SIGCONT völlig ab.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, aha... wenn dein System anfängt zu swappen, dann ist das sehr sicher die Bremse. Hier hilft dann wohl mehr RAM. Oder eine ultra-schnelle SSD. Oder beides 😉 Generell ist es IMHO auch auch fraglich, wie viel Aufwand man für 10-20 Minuten pro Monate treiben möchte. Bzw. die Frage ist: wie störend ist das wirklich oder kann man das nicht einfach akzeptieren. Die Frage musst du aber selber beantworten ☺ Gruß, noisefloor
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13127
|
noisefloor schrieb:
Generell ist es IMHO auch auch fraglich, wie viel Aufwand man für 10-20 Minuten pro Monate treiben möchte. Bzw. die Frage ist: wie störend ist das wirklich oder kann man das nicht einfach akzeptieren. Die Frage musst du aber selber beantworten ☺
Du nimmst mir das Wort aus dem Mund. 👍
|
X-DoSt-X
(Themenstarter)
Anmeldungsdatum: 11. März 2010
Beiträge: 306
|
rklm schrieb: noisefloor schrieb:
Generell ist es IMHO auch auch fraglich, wie viel Aufwand man für 10-20 Minuten pro Monate treiben möchte. Bzw. die Frage ist: wie störend ist das wirklich oder kann man das nicht einfach akzeptieren. Die Frage musst du aber selber beantworten ☺
Du nimmst mir das Wort aus dem Mund. 👍
Es hätte ja sein können, dass so eine einfachen Lösung möglich ist, wie es mit cpulimit aussieht, dass es Möglich wäre. Aber mit SIGSTOP/SIGCONT habe ich mir schon mal eine Datenbank geschrottet - und das merkt man dann erst 3 Tage später. Das brauche ich nicht nochmal. Danke trotzdem an alle. Grüße
Dost
|