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
Vorgehensweise bei sehr vielen cronjobs
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Re: Vorgehensweise bei sehr vielen cronjobs
Das habe ich mir aufgrund des 5min Intervalls gedacht ...srellik hat geschrieben: Es handelt sich hierbei um Monitoring-Skripte, die diverse RRD-Datenbanken füllen.
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
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
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
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
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
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30