Tengo un par de trabajos cron para mantenimiento básico que no requieren muchos recursos.
También tengo una programación de tareas personalizada (que solo llama a un archivo .php y pasa información a través de GET, es decir: cronjob.php? Param1 = param ...). Estos pueden sumar bastante rápido.
Estos solo invocan comandos del sistema y ejecutan programas externos (Nmap es uno de ellos). Por lo general, tampoco tardan mucho.
De todos modos, ¿alguien puede decirme, más o menos, qué punto es demasiado? Sé que es difícil de decir ya que depende de qué trabajo se ejecute y con qué frecuencia, pero ¿en qué punto el programa crontab comienza a "luchar"? ¿Alguien tiene alguna idea?
Gracias.
Respuestas:
No me preocuparía la carga en el "programa crontab" (cron) en sí; es a la carga general de su sistema a la que debería prestar atención. Observe las métricas (utilización de la CPU, tasas de io, tiempos de respuesta de consultas web) durante el tiempo en que se ejecutan sus trabajos: ¿hay un aumento notable? ¿Es lo suficientemente malo como para interrumpir el uso real del sistema?
Si los programas "no tardan mucho", es una buena señal de que no es un problema.
Si todavía está preocupado, puede hacer otras cosas para limitar la carga: ejecutar los trabajos
nice
para reducir su prioridad, ejecutarlos secuencialmente en lugar de simultáneamente, y así sucesivamente.fuente
Simplemente buscando a través de nuestros sistemas de producción, el más grande tenía 862 trabajos cron (en todos los usuarios, el más grande, el root, es 117), y no se pone a sudar con tantos.
Si comienza 60 trabajos por minuto, 24x7, y todos tardan dos segundos en completarse, entonces probablemente terminará en un mundo de dolor. Pero, siempre que la carga de trabajo se equilibre (con tiempos de silencio y demás), debería recuperarse. Vigile las cargas del sistema durante las horas pico (% de CPU, E / S de disco, ...) y preocúpese más por eso que por la cantidad de trabajos reales.
Esta pregunta es similar a "¿Cuántos procesos puedo ejecutar antes de tener problemas?". La mejor opción es probarlo, ya que depende de su sistema. Cron en sí tiene algunas limitaciones que he encontrado pero, si estás tratando de programar decenas de miles de trabajos, estás ejerciendo más presión que nunca.
¡Mide, no adivines!
fuente
Cron en sí esencialmente nunca comenzará a luchar; el sistema estará completamente empantanado con la carga de trabajo mucho antes de que eso suceda.
fuente
Estoy de acuerdo con todas las respuestas presentes aquí. Para entenderlo con una perspectiva ligeramente diferente, piense en cronjobs como usuarios en su plataforma.
Digamos que un usuario utiliza el 1% de su CPU (operaciones CRUD / redes, etc.). Si hay 100 de estos usuarios (cronjobs) simultáneamente, entonces su CPU alcanzaría un límite de umbral y el servidor podría no ser capaz de procesar en última instancia, lo que provocaría un bloqueo.
Volviendo a la pregunta: "¿Cuántos trabajos cron son demasiados?" - Siempre y cuando su análisis sugiera que puede que no haya un aumento repentino en los recursos , incluso 100 cronjobs son buenos para ir.
fuente