Un pic CPU (CPU spike) survient quand l'utilisation processeur monte brutalement, ralentissant ou bloquant tout le serveur. Voici comment identifier la cause et résoudre le problème.
Symptômes
- Temps de réponse qui explose soudainement
- Load average supérieur au nombre de CPU
- Connexions SSH lentes ou timeout
- Erreurs 503 ou timeouts côté utilisateur
Causes Fréquentes
- Script mal optimisé : Une boucle infinie ou un algorithme O(n²) sur beaucoup de données.
- Attaque ou bot : Un bot qui crawle agressivement ou une attaque DDoS.
- Cron concurrent : Plusieurs instances du même cron qui tournent en parallèle.
Étapes de Diagnostic
- Identifiez le processus avec htop ou top
- Vérifiez les logs Apache/Nginx pour du trafic anormal
- Examinez les crons en cours (ps aux | grep cron)
- Analysez les requêtes MySQL (SHOW PROCESSLIST)
Automatiser avec MoniTao
MoniTao détecte les effets des pics CPU :
- Alertes sur les temps de réponse anormaux
- Détection des erreurs 503 et timeouts
- Historique pour corréler avec vos déploiements
Bonnes Pratiques
- Limitez les ressources des crons (nice, cpulimit)
- Utilisez un rate limiter contre les abus
- Implémentez un lock pour éviter les crons concurrents
- Surveillez le load average, pas juste le CPU%
Questions Fréquentes
Quelle est la différence entre CPU% et load average ?
CPU% mesure l'utilisation instantanée. Load average mesure la charge moyenne (incluant les I/O).
Comment limiter les ressources d'un script ?
Utilisez nice pour la priorité et cpulimit pour un plafond strict.
Le scaling horizontal résout-il le problème ?
Il répartit la charge mais ne corrige pas un script mal optimisé.
MoniTao peut-il mesurer le CPU ?
Non directement, mais les temps de réponse et erreurs 503 révèlent les problèmes.
Prêt à dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.