Combien d'emplois cron sont trop nombreux?

9

J'ai quelques tâches cron pour la maintenance de base qui ne sont pas très gourmandes en ressources.

J'ai également une planification des tâches personnalisée (qui appelle simplement un fichier .php et transmet des informations via GET, c'est-à-dire: cronjob.php? Param1 = param ...). Ceux-ci peuvent s'additionner assez rapidement.

Ceux-ci appellent simplement les commandes système et exécutent des programmes externes (Nmap est l'un d'entre eux). Ils ne prennent généralement pas longtemps non plus.

Quoi qu'il en soit, quelqu'un peut-il me dire à peu près à quel point c'est trop? Je sais que c'est difficile à dire car cela dépend de la tâche exécutée et de la fréquence, mais à quel moment le programme crontab commence-t-il à "se débattre"? Quelqu'un a quelquonque idée?

Merci.


la source
Combien d'entrées pouvez-vous ajouter avant que le fichier ne devienne si volumineux que vous manquiez d'espace disque?
John Gardeniers

Réponses:

6

Je ne m'inquiéterais pas de la charge du "programme crontab" (cron) lui-même; c'est la charge globale de votre système à laquelle vous voudrez peut-être prêter attention. Examinez les métriques (utilisation du processeur, taux d'io, temps de réponse aux requêtes Web) pendant la durée d'exécution de votre ou vos tâches - y a-t-il un pic notable? est-ce suffisamment grave pour perturber l'utilisation réelle du système?

Si les programmes "ne prennent pas longtemps", c'est un bon signe que ce n'est pas un problème.

Si vous êtes toujours concerné, vous pouvez faire d'autres choses pour limiter la charge: exécutez les travaux avec nicepour réduire leur priorité, exécutez-les séquentiellement au lieu de simultanément, etc.

David Gelhar
la source
5

En parcourant simplement nos systèmes de production, le plus important comptait 862 tâches cron (parmi tous les utilisateurs, le plus grand, root, 117), et il ne sort pas particulièrement en sueur avec autant.

Si vous commencez 60 tâches par minute, 24h / 24 et 7j / 7, et qu'elles prennent toutes deux secondes, vous vous retrouverez probablement dans un monde de douleur. Mais, tant que la charge de travail s'équilibre (avec des temps calmes et autres), elle devrait se rétablir. Gardez un œil sur les charges du système pendant les périodes de pointe (% CPU, E / S disque, ...) et vous inquiétez plus à ce sujet que le nombre de travaux réels.

Cette question s'apparente à "Combien de processus puis-je exécuter avant d'avoir des problèmes?". Le mieux est de l'essayer, car cela dépend de votre système. Cron lui-même a peu de limites que j'ai trouvées mais, si vous essayez de planifier des dizaines de milliers d'emplois, vous y mettez plus de pression que jamais.

Mesurez, ne devinez pas!

user12022
la source
1

Cron lui-même ne commencera pratiquement jamais à lutter; le système sera complètement embourbé avec une charge de travail bien avant que cela ne se produise.

Andrew McGregor
la source
0

Je suis d'accord avec toutes les réponses présentes ici. Pour le comprendre avec une perspective légèrement différente, pensez aux cronjobs en tant qu'utilisateurs sur votre plate-forme.

Disons qu'un utilisateur utilise 1% de votre CPU (opérations CRUD / mise en réseau, etc.). S'il y a 100 utilisateurs (cronjobs) simultanément, votre processeur atteindrait une limite de seuil et le serveur pourrait ne pas être en mesure de traiter, ce qui entraînerait un crash.

Revenons donc à la question: "Combien d'emplois cron sont trop nombreux?" - Tant que votre analyse suggère qu'il pourrait ne pas y avoir de pic soudain dans les ressources , même 100 cronjobs sont bons.

Han
la source