Vorgehensweise bei sehr vielen cronjobs

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
srellik
Beiträge: 6
Registriert: 13.05.2005 23:23:17

Vorgehensweise bei sehr vielen cronjobs

Beitrag von srellik » 18.12.2006 20:50:10

Hallo Zusammen,

auf einem Server laufen sehr viele Cronjobs (mehr als 500 pro 5min)
Damit die Auslastung des Servers nicht zu jeder vollen Minute zu sehr ansteigt, habe ich die Cronjobs versucht zu verteilen. D.h. ich habe vor die einzelnen Jobs jeweils einen "sleep"-Befehl gesetzt, so dass mittlerweile jede Sekunde mindestens 2 Jobs ablaufen. Es werden aber noch einige hinzukommen.

Nun zu meiner Frage:
- wie stark gehen die "sleep"-Befehle auf meine Auslastung
- Gibt es eine Alternative zu Cron, bei der ich die Jobs sekundengenau ablaufen lassen kann
- Wie würdet ihr bei einer solchen Anzahl an Cronjobs vorgehen

Zur Info:
Es handelt sich hierbei um Monitoring-Skripte, die diverse RRD-Datenbanken füllen.

Danke im voraus
Alex

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Re: Vorgehensweise bei sehr vielen cronjobs

Beitrag von meandtheshell » 18.12.2006 21:28:57

srellik hat geschrieben: Es handelt sich hierbei um Monitoring-Skripte, die diverse RRD-Datenbanken füllen.
Das habe ich mir aufgrund des 5min Intervalls gedacht ...

Verwendest Du Skripte Marke Eigenbau um mit RRD zu arbeiten oder munin/nagios etc.? 500 Cronjobs ist sehr viel. Was machst Du da alles?

markus

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 18.12.2006 21:58:28

wegen der Auslastung durch den sleep Befehl würde ich mir keine großen Gedanken machen. Im Vergleich zu der Gesamtauslastung durch die 500 Jobs, wird diese verschwindend klein sein.
Allerdings erreichst du damit auch keine sekundengenaue Ausführung, dazu ist Cron einfach zu ungenau, aber das ist dir sicherlich bewußt, sonst würdest du nicht nach einer alternativen Lösung suchen.
Diesbezüglich habe ich allerdings auch nichts parat, eine selbstgestrickte Lösung ist aber sicherlich auch nicht allzuschwer zu implementieren, du brauchst ja nur ein Programm, welches im Sekundenintervall andere Jobs aufruft.

Gruß
gms

srellik
Beiträge: 6
Registriert: 13.05.2005 23:23:17

Beitrag von srellik » 19.12.2006 22:14:31

Hallo,

danke für die antworten.

Die Cron-Jobs laufen auf einem Server, der als Netz-Management/Monitoring-Station dient.
Ca. 90% der Jobs sind mrtg-prozesse, die diverse Router und Switches abpollen und die RRD-Datenbanken füllen. Andere selbstgestrickte rrd-Skripte sammeln Temperaturwerte, Festplattenauslastung, Load,...

Die Skripte müssen auch nicht auf die Sekunde genau alle 5min ausgeführt werden, da dies bei den rrds nicht unbedingt notwendig ist.

Ziel ist nur die Crontab etwas kleiner zu bekommen und den Aufwand zu minimieren.

Mfg

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 20.12.2006 00:21:57

Warum nimmst du nicht Nagios? Wenn Du so spezielle Sachen hast die man mit Munin oder Nagios nicht lösen kann (was ich bezweifle) würde ich mir ein C Tool schreiben das die Skripte abarbeitet und dabei Rücksicht auf Systemlast etc. nimmt.

markus

Antworten