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.
Réponses:
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
nice
pour réduire leur priorité, exécutez-les séquentiellement au lieu de simultanément, etc.la source
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!
la source
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.
la source
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.
la source