Wie kann ich andere, nicht verwandte Prozesse anhalten, um einem relevanten Prozess die Belegung der CPU zu ermöglichen?

Wie kann ich andere, nicht verwandte Prozesse anhalten, um einem relevanten Prozess die Belegung der CPU zu ermöglichen?

Ist es möglich, zu

  • Finden Sie zunächst heraus, welche Prozesse für die Ausführung eines Prozesses erforderlich sind, und
  • Setzen Sie dann alle anderen, nicht damit verbundenen Prozesse aus, damit der betreffende Prozess die CPU so weit wie möglich nutzen kann.
  • Wenn der betreffende Prozess beendet ist, die angehaltenen Prozesse fortsetzen?

Ein interessanter Prozess ist beispielsweise djview

Danke.

Antwort1

Das sollte (zumindest in vielen Fällen) möglich sein, wenn eine permanente Verbindung besteht. Dann können Sie /proc/PID/fdnach Sockets und FIFOs suchen (schwieriger, wenn normale Dateien verwendet werden) und die zugehörigen Prozesse finden.

Ich würde die anderen Prozesse jedoch nicht vollständig blockieren. Das erscheint mir gefährlich. Wenn Sie einen Fehler machen, kann es zu Deadlocks kommen (und es können auch andere Probleme auftreten).

Ich schlage vor, die CPU- und I/O-Priorität aller Prozesse zu dumpen, anzupassen ( renice, ionice) und anschließend wiederherzustellen. Das kostet den Hauptprozess zwar 10% Leistung, aber man ist auf der sicheren Seite.

verwandte Informationen