Ich habe einen Rsync-Cron-Job, der die Serverlast erhöht und Monitorwarnungen auslöst. Wenn ich den Job so einstelle, dass er mit einem hohen Level ausgeführt wird, würde dies die Auswirkungen auf die Systemlastwerte effektiv reduzieren?
11
Antworten:
Es wird Ihre Last nicht reduzieren.
Andere Prozesse können die CPU-Zeit nur dann häufiger nutzen, wenn ein möglicher Ressourcenkonflikt besteht (mehrere Prozesse "konkurrieren" um nicht genügend verfügbare CPU-Zeit).
quelle
Durch Ändern des Nice-Werts wird die Systemlast nicht direkt reduziert. Es kann jedoch verwendet werden, um mehr Ressourcen für die verbleibenden Prozesse verfügbar zu machen, was meiner Meinung nach das ist, was Sie wirklich wollen.
Von http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/
Ja, Sie möchten den Cron-Job auf einer höheren Ebene als die anderen Prozesse ausführen, wenn Sie sicherstellen möchten, dass andere Prozesse Priorität erhalten.
Dazu möchten Sie, dass Ihr Cron-Skript folgendermaßen ausgeführt wird:
Dadurch wird das Cron-Skript mit einer um 10 erhöhten Genauigkeit ausgeführt. Sie möchten wahrscheinlich ein wenig testen, um ein gutes Gleichgewicht (Wortspiel nicht beabsichtigt) zwischen den verbleibenden Prozessen und der Ausführungszeit des Skripts zu finden.
Siehe auch Wie funktioniert es gut zu arbeiten? und http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ für weitere Details.
quelle
Es ist unwahrscheinlich, dass sich das Ändern der netten Ebene eines Prozesses auf den Systemlastwert auswirkt. Der Systemlastwert ist die durchschnittliche Länge der Ausführungswarteschlange , dh die Anzahl der Prozesse, die die CPU verwenden möchten.
Wenn Sie einen CPU-gebundenen Prozess ausführen (rsync nicht, aber nur zum Beispiel), möchte er immer die CPU-Zeit verwenden, wenn etwas verfügbar ist. Da es immer ausgeführt werden soll, trägt es einen Lastwert von 1,0 zum Systemlastwert bei. Es spielt keine Rolle, wie hoch die Prozessstufe ist, da die durchschnittliche Länge der Ausführungswarteschlange von der Reihenfolge der Prozesse in der Ausführungswarteschlange nicht beeinflusst wird.
quelle
Sie können drei Möglichkeiten in Betracht ziehen, um die Auswirkungen Ihres Prozesses auf die Systemlast / CPU-Zeit zu verringern:
nice
Befehl, um die Priorität der Aufgabe manuell zu senken.cpulimit
Befehl, um den Vorgang wiederholt anzuhalten, damit ein bestimmtes Limit nicht überschritten wird.built-in control groups
, einen Mechanismus, der den Scheduler anweist, die für den Prozess verfügbaren Ressourcen zu begrenzen.Ressourcen
http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups
quelle