CRON inizia a saltare al minuto successivo


0

Sto installando crons a minuto singolo sul crontab tramite uno script bash a scopo di test del carico. Non c'è nessun problema con l'esecuzione dello script e i croni vengono sommati e posso monitorare i croni che vengono eseguiti tramite / var / log / cron.

Ma il problema è quando ho informato la sceneggiatura l'altro giorno a 106 cron che ha aggiunto e sono stati eseguiti bene. Ma oggi ho ripristinato il crontab da zero e sono stato in grado di impostare solo 85 croni, quindi inizia a dire

crond [31243]: (root) INFO (L'esecuzione del lavoro al minuto programmata per le 08:32 è ritardata al minuto successivo alle 08:33. Saltare l'esecuzione del lavoro.)

e alla fine tutti i croni inizieranno a essere saltati e nulla verrà eseguito. Ma la conclusione iniziale che ho avuto è stata 106 è il valore massimo che può essere impostato su questo server. Ma oggi è stato ridotto a 85. Le configurazioni del server non sono state modificate, lo stesso ambiente di quando era 106

È a causa della creazione di croni troppo frequentemente o qualcos'altro. Sono nuovo di cron e del suo funzionamento. Per favore aiuto

Risposte:


0

Sembra che tu stia configurando un programma cron con crontab con molte voci con programmi identici nell'aspettativa che cron eseguirà quelli in parallelo per te.

* * * * * /path/to/task1
* * * * * /path/to/task2
* * * * * /path/to/task3
...

Non è esattamente quello che succede:

Nella maggior parte delle implementazioni cron so che le attività verranno avviate in ordine sequenziale, non in parallelo , nell'ordine in cui le attività sono elencate nel file crontab. Cron li avvierà uno dopo l'altro ...
Cron non dovrà attendere il completamento di task1 prima di avviare task2, ma inizierà task3 solo dopo aver avviato task1 e task2 ecc. Una volta avviati, i task verranno eseguiti in parallelo (per tutto il tempo man mano che il completamento delle attività).

Le attività che devono essere avviate e il carico sul sistema in quel momento limiteranno la velocità con cui cron può avviare nuove attività. Quando cron non può avviare tutte le attività nell'intervallo di tempo assegnato e inizia la successiva iterazione della pianificazione (un nuovo minuto), si perderanno le attività che non è stato possibile avviare. Ciò comporterà l'errore:

L'esecuzione del lavoro al minuto programmato per le 08:32 è ritardata al minuto successivo alle 08:33. Salto del lavoro eseguito.


Sembra che tu voglia avviare molte attività identiche in parallelo:

* * * * * /path/to/task
* * * * * /path/to/task
* * * * * /path/to/task
...

usa semplicemente il parallelprogramma di aiuto a quello per te;

* * * * * parallel -j 50 /path/to/task

Si noti che quando le attività parallele non finiscono entro un solo minuto, il minuto successivo inizieranno 50 esecuzioni aggiuntive dell'attività, che, con il carico aggiuntivo di quelle attività ancora in esecuzione, durerà anche più a lungo di 1 minuto. Dopo un po 'di tempo il sistema probabilmente esaurirà le risorse e non risponderà completamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.