Es kommt ziemlich häufig vor, dass Benutzer-Cron-Jobs auf gemeinsam genutzten Servern alle gleichzeitig ausgeführt werden und in Streit geraten (so nahe ich es beurteilen konnte). Die Last explodiert, Nagios ist wütend, Apache reagiert nicht mehr, Sie können nicht SSH-fähig machen, weil das Zeitlimit abgelaufen ist usw. Ich bin nicht in der Lage, einseitig zu entscheiden, dass Benutzer keine Cron ausführen können, aber ich möchte um dieses Problem zu bekämpfen, bei dem pgrep crond | wc -l> 50 zurückgibt.
Es scheint möglich zu sein, sie zu verschieben, indem die Anzahl der zu einem bestimmten Zeitpunkt oder ähnlich ausgeführten Crond-Prozesse begrenzt wird (wie das Senden von SIGSTOP, bis einige von ihnen nur noch weniger hackig sind), aber ich habe noch keine guten Hinweise gefunden.
Die Hardware: 4 CPU und höher, Low-End ist Dell 1435s mit ~ 8 GB Speicher, RAID 10 WD EADS Meist Plesk und cPanel, aber auch einige böse Sphera-Systeme.
Wie gehen Sie mit diesem Problem um, sf?
quelle
Ich denke, Sie haben eines dieser Probleme:
Nicht genügend Speicher, um die Crontabs gleichzeitig auszuführen. Sie können beheben durch:
hohe E / A. Sie können beheben durch:
ionice
Versuchen Sie herauszufinden, ob die Maschine ausgetauscht wird und ob sie während der Nacht nicht ausgetauscht wird, und ändern Sie die Cron-E / A-Prioritätsklasse in Leerlauf:
quelle
Ich habe Cronjobs immer zu zufälligen Zeiten (insbesondere Minuten) eingeplant. Ich sehe häufig Cron-Beispiele, die um Mitternacht laufen, wie:
Wenn Sie viele Jobs so definiert haben, fragen Sie nach Ärger. Leider sind dies oft lang laufende Systemjobs. Ich neige auch dazu, Jobs zu unterschiedlichen Zeiten in einem Stapelprozessfenster zu planen. (23 bis 05) Stunden.
Ich mag die neue Cron-Spezifikation, die unter Ubuntu verwendet wird. Hier gibt es mehrere
/etc/cron.*
Verzeichnisse, in denen Jobs ausgeführt werden sollen. Sie werden nacheinander ausgeführt, anstatt die Last parallel zu begrenzen.Sie sollten in der Lage sein zu sehen, was in den Dateien in geplant ist
/etc/spool/cron/crontabs
. Das Lesen dieser Dateien erfordert Root-Zugriff. Wenn Benutzer die Probleme verursachen, besprechen Sie das Problem mit ihnen.Sie können auch
/var/log/syslog
nach CRON-Einträgen suchen, um zu sehen, was wann ausgeführt wird.quelle