Wie kann ich die durchschnittliche CPU -Verwendung für eine Gruppe von Prozessen (Bash Coprocs + ihre Kinder) unter Linu

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie kann ich die durchschnittliche CPU -Verwendung für eine Gruppe von Prozessen (Bash Coprocs + ihre Kinder) unter Linu

by Anonymous » 31 Jan 2025, 17:36

Hintergrund : Ich habe eine Bash -Funktion namens forkrun geschrieben, die den Code für Sie auf die gleiche Weise parallelisiert, wie dies parallel oder xargs -p tut. Es ist schneller als parallel und hat eine ähnliche Geschwindigkeit wie, hat jedoch mehr Optionen als Xargs -p . Forkrun funktioniert, indem er eine Reihe persistenter Bash -Coprocs laich sind parallelisieren. Dies muss die "Overhead" -KPU -Verwendung des Coproc -Ausgangs seines Schleifens und enthalten. bei jeder Schleifener Iteration). Ich muss also die CPU-Verwendung von allen Coproc Pids + ihren Kindern (und Enkelkindern und Urenkelkindern und ...) total verabschiedet. >: Ich möchte Forchrun dynamisch bestimmen, wie viele Coprocs basierend auf Laufzeitbedingungen laichen werden sollen. Ein Teil meiner Strategie dazu besteht darin, herauszufinden, wie viel CPU -Zeit (im Durchschnitt) jedes dieser Coprocs in Anspruch nimmt. Die aktuelle Implementierung für "dynamisches Coproc -Laichen" führt dies durch die Betrachtung der Gesamtsystemlast (durch Wahl/Proc/Stat ) vor und nach der Entstehung einiger Coprocs, aber dies ist sehr laut statt und ziehen Sie die Felder von Utime , Stime , Cutime und CStime aus. Leider berücksichtigt dies nur die CPU -Zeit für auf Kinder. d.h. Sie geben es auf und rufen dann Wait auf. Es enthält nicht die CPU -Zeit für Dinge wie "Stuff in Subshells". Ich habe viel Aufwand aufgewendet, um sicherzustellen, dass Forkrun praktisch keine Abhängigkeiten hat - derzeit sind die einzigen harten Abhängigkeiten eine aktuelle Bash -Version, eine montierte Procfs und einige Binärdateien für grundlegende Dateisystemoperationen (Operationen (

Code: Select all

rm
, mkdir ). Wenn ein externes Werkzeug absolut erforderlich ist, dann bin ich zu 99% sicher, dass ich diese Informationen aus Procfs herausholen kann *irgendwie.
Danke im Voraus!

Top