12. Cron, tâches planifiées et batch
Optimisation de l'exécution des tâches planifiées (cron jobs, systemd timers) et des traitements batch pour minimiser l'impact sur les performances système.
Objectif: Objectif du composant
Planifier et exécuter les tâches lourdes de manière à minimiser leur impact sur les performances interactives du système.
Paramètres: Paramètres concernés
Cron jobs Tâches planifiées via cron systemd timers Tâches planifiées via systemd Nice / ionice Priorisation des processus CPU et I/O
Bonnes pratiques: Bonnes pratiques
- Identifier les tâches planifiées (scripts de sauvegarde, rapports, mises à jour) qui sont gourmandes en ressources - Planifier l'exécution de ces tâches pendant les heures creuses ou de faible activité système - Utiliser les commandes `nice` (priorité CPU) et `ionice` (priorité I/O) pour réduire l'impact des tâches batch sur les processus interactifs
Pièges à éviter: Pièges à éviter
- Laisser des tâches lourdes s'exécuter pendant les heures de pointe, ralentissant les applications critiques - Ne pas vérifier si les tâches planifiées se terminent correctement (logs, retours d'erreurs) - Ne pas centraliser les logs des tâches batch, rendant le débogage difficile
Recommandations: Recommandations par profil
Serveurs de production : Planifier les sauvegardes et la maintenance pendant la nuit; utiliser des scripts de `cron` robustes avec logging Postes de travail : Utiliser `nice -n 19` pour les compilations longues ou les tâches de fond non urgentes Systèmes avec des traitements batch : Envisager des solutions d'ordonnancement de jobs (ex: Slurm, Celery) pour une gestion plus fine
Exemples: Exemples de réglage
sudo crontab -e # Éditer la crontab root # Exemple de tâche nightly avec faible priorité: # 0 3 * * * nice -n 19 /usr/local/bin/my_backup_script.sh systemctl edit --full myapp.timer # Modifier un timer systemd
Commandes utiles: Commandes utiles
crontab -l systemctl list-timers --all top -b -n 1 | grep "process_name" # Vérifier un processus batch ps -eo pid,ni,comm,io,cmd # Afficher la nice et ionice des processus
Références: Références officielles
- https://man7.org/linux/man-pages/man5/crontab.5.html - https://www.freedesktop.org/software/systemd/man/systemd.timer.html - https://man7.org/linux/man-pages/man1/nice.1.html - https://man7.org/linux/man-pages/man1/ionice.1.html
