Cherchez ce qui brûle le CPU avant d'acheter quoi que ce soit. Si une poignée de requêtes domine, indexez-les ou réécrivez-les. Si c'est un vrai volume de lecture, ajoutez des réplicas et routez-y le trafic en lecture seule, puis mettez en cache les résultats les plus demandés avec une durée de vie courte. Supprimer les motifs N plus un et plafonner les tailles de page rapporte souvent plus que du matériel. Augmentez la taille de l'instance pour gagner du temps, puis corrigez proprement le motif de requêtes.
Pourquoi les recruteurs posent cette question
Le recruteur veut voir si vous profilez avant de dépenser. Ajouter des réplicas à une charge dominée par une requête non indexée gaspille de l'argent et masque le problème. Il vérifie aussi que vous savez que la réplication est asynchrone, donc déplacer les lectures introduit une péremption avec laquelle il faut composer, et que le cache porte un coût de justesse. Les bonnes réponses ordonnent les correctifs par coût, risque et temps de mise en oeuvre.
Comment structurer votre réponse
- Mesurez quelles requêtes dominent avant de changer quoi que ce soit.
- Corrigez d'abord les problèmes de requêtes et d'index, c'est le moins cher.
- Ajoutez des réplicas ou du cache pour un volume réel.
- Signalez le retard de réplication et comment vous le gérez.
Exemple de réponse
Avant d'ajouter quoi que ce soit, je veux savoir ce que fait le CPU, donc je sors les requêtes les plus consommatrices en temps total depuis pg_stat_statements ou l'équivalent. D'expérience, un petit nombre de requêtes fait l'essentiel des dégâts, et souvent l'une d'elles est un N plus un venu d'un ORM qui a empiré à mesure qu'un client grossissait. Corriger ça est gratuit comparé à faire tourner des réplicas. Si le profil dit vraiment que c'est un volume de lecture uniforme, alors les réplicas ont du sens et j'y route les endpoints en lecture seule. Le piège, c'est le retard de réplication, donc tout ce qui lit juste après une écriture va sur le primaire, sinon un utilisateur voit sa propre mise à jour disparaître. Ensuite je mets en cache les quelques endpoints les plus demandés avec une durée de vie courte. En parallèle, j'augmenterais la taille de l'instance verticalement, parce que c'est un changement de quinze minutes qui achète de la marge pour faire le reste correctement. J'essaie d'être explicite avec l'équipe : monter en taille est un chronomètre, pas un correctif.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment routeriez-vous lectures et écritures dans le code applicatif ?
- Comment gérez-vous un utilisateur qui lit immédiatement après avoir écrit ?
- À partir de quel moment sharderiez-vous plutôt ?
Autres questions pour Ingénieur logiciel
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions