Cas d'usage

Six problèmes, six diagnostics.

Ralentissements, erreurs, verrous, saturation : ce que vous remarquez, ce que Wakoo trouve, le correctif, et comment Wakoo vérifie qu'il a tenu. Exemples, valeurs illustratives.

Première instance gratuiteLecture seule

01

« Too many connections » le jour du lancement

Premier vrai pic, et l'app répond FATAL: too many connections.

Wakoo trouve

60 instances serverless × un pool de 10 = 600 connexions, au-dessus de la limite de 500.

CorrectifUn pooler en mode transaction devant, pools limités à 2.

Connexions actives face à la limite, au prochain pic.

02

Base chargée, aucune requête lente

Le CPU grimpe, et pourtant chaque requête paraît rapide.

Wakoo trouve

Une requête de 0,4 ms tourne 38 000 fois par minute : un N+1 de l'ORM.

CorrectifCharger la relation d'avance : une requête au lieu de milliers.

Appels par minute pour cette forme de requête.

03

Plus lent du jour au lendemain, sans mise en ligne

Personne n'a rien mis en ligne, et un rapport prend 11 s au lieu de 0,3 s.

Wakoo trouve

Après l'ANALYZE, le planificateur attend 40 lignes au lieu de 2,3 M et choisit une boucle imbriquée.

CorrectifStatistiques étendues sur (status, account_id). Sans bloquer les écritures.

Forme du plan et p95 de cette requête.

04

Plus lent chaque mois

Rien n'a changé, et pourtant tout ralentit : les lectures sur events s'allongent chaque mois.

Wakoo trouve

61 % de lignes mortes ; l'autovacuum n'a pas terminé sur events depuis 9 jours.

CorrectifRégler l'autovacuum de cette table. Récupérer l'espace ensuite si besoin.

Taux de lignes mortes et durée de lecture sur events, chaque semaine.

05

Une migration a figé l'API

Un ALTER TABLE, et toutes les requêtes partent en timeout.

Wakoo trouve

Il attend derrière une transaction inactive depuis 47 min ; toutes les requêtes font la queue.

CorrectifRelancer avec lock_timeout, et corriger le worker qui laisse des transactions ouvertes.

Aucune longue transaction inactive avant la prochaine migration.

06

Plus lent depuis le déploiement de jeudi

Depuis jeudi, la liste des commandes met 4 s au lieu de 200 ms.

Wakoo trouve

Une nouvelle requête trie 1,2 M de lignes et écrit 800 Mo de fichiers temporaires à chaque passage.

CorrectifUn index qui suit l'ORDER BY, créé en CONCURRENTLY.

Fichiers temporaires et temps moyen de cette requête, avant et après.

Comment fonctionne le diagnostic : voir le produit.

Script de check-up gratuit

Un check-up PostgreSQL en lecture seule, que vous lancez vous-même.

Un script Node.js, lancé sur votre machine avec un rôle en lecture seule. Il affiche un rapport sur votre écran et n'envoie rien.

  • Connexions et transactions trop longues
  • Index invalides, inutilisés et en double
  • Clés étrangères sans index
  • Requêtes les plus lourdes et N+1 possibles

Une personne de l'équipe vous l'envoie par email sous 24 h.

Connectez votre première base et arrêtez de deviner.

Première instance gratuiteLecture seule