Ouaip ça rejoint mes observations. Si les horaires de ramage ne sont pas fixes il faut exclure les trucs genre tâche CRON (genre le backup périodique) je pense, mais faut quand même bien s'en assurer avant.
La dernière fois il me semble que c'était en partie lié à une requête problématique sur la recherche de combo : peut-être chercher un usage un peu caché de ce genre (nouveau vu la fréquence du problème et le fait qu'il n'existait pas y a quelques semaines).
Autres pistes de diagnostic :
- mettre en place un bot pinger pour tracer les horaires exacts des pannes (si t'as pas de métrique plus adaptée dans ton back office) genre un bête script qui appelle la racine du site toutes les 30 secondes et qui logue pour chaque appel le temps de réponse et le statut HTTP ou l'erreur dans un fichier CSV ;
- vérifier les métriques du serveur juste avant les plantages (charge CPU, RAM, connexions HTTP, connexions SQL...) ;
- se palucher les logs HTTP pour identifier des requêtes récurrentes au moment des pannes (donc plus tu détectes le début de la panne précisément, moins c'est relou à éplucher) ;
- plus lourd à faire si les bases ne sont pas déjà là : ajouter du log, toujours, partout, autour du code "critique" (accès BDD, accès web services tiers, algorithmes de traitement à complexité élevée...), et
notifier les erreurs (timeouts, exceptions...) quelque part (perso j'utilise
Sentry dans tous mes projets, la version gratuite pour les persos, et ma vie a changé depuis).