Question d'entretien pour Développeur backend

Un service se fait tuer pour dépassement mémoire tous les deux jours. Comment enquêtez-vous ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Confirmez d'abord le motif dans les métriques : une croissance régulière pointe vers une fuite ou un cache non borné, tandis qu'un pic net pointe vers une requête unique qui charge trop d'un coup. Capturez un profil de tas avant et après une période de croissance et comparez les allocations retenues. Les causes habituelles sont des caches sans éviction, des collections qui grossissent tenues par des objets à longue durée de vie, des ressources non fermées, et des endpoints qui chargent tout un jeu de résultats en mémoire.

Pourquoi les recruteurs posent cette question

Le recruteur veut une méthode plutôt qu'une supposition, plus la preuve que vous avez utilisé un profileur pour de vrai. Distinguer une croissance graduelle de pics est la séparation diagnostique clé, et ça change l'endroit où vous regardez. Il vérifie aussi si vous prendriez les redémarrages et une limite mémoire plus grande comme réponse permanente, ce qui cache le problème jusqu'à ce que le trafic double.

Comment structurer votre réponse

  • Séparez la croissance régulière de l'allocation en pics grâce aux métriques.
  • Capturez et comparez des profils de tas sur une fenêtre de croissance.
  • Énumérez les causes habituelles et vérifiez les changements récents.
  • Mettez un garde-fou en place pour que ça ne puisse pas se reproduire en silence.

Exemple de réponse

Exemple parlé, à la première personne

La forme de la courbe me dit où regarder. Une montée lente sur plusieurs jours qui survit aux périodes calmes est une fuite ou un cache sans borne. Une dent de scie qui pique sur certaines requêtes signifie que quelque chose charge trop d'un coup. Pour le premier cas, je prends des profils de tas à quelques heures d'intervalle sous un trafic comparable et je les compare par taille retenue, puis je regarde ce qui tient les plus gros objets. En pratique, c'est en général quelque chose de banal : une map utilisée comme cache sans éviction ni maximum, un libellé de métrique construit à partir d'une valeur fournie par l'utilisateur si bien que la cardinalité grandit sans fin, ou des écouteurs enregistrés sur un objet à longue durée de vie et jamais retirés. Pour les pics, je cherche des endpoints qui lisent toute une table dans une liste au lieu de la parcourir en flux, ou un traitement par lots qui charge chaque ligne avant d'écrire. J'ai eu exactement ça avec un export CSV qui matérialisait un million de lignes ; le passer en flux paginé a rendu la mémoire plate. Ensuite j'ajoute une alerte sur la tendance mémoire plutôt que seulement sur le crash, pour être prévenu avant le redémarrage.

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 marche

Questions de relance à prévoir

  • Comment décideriez-vous s'il s'agit d'une fuite ou simplement d'un grand ensemble de travail ?
  • Que plafonneriez-vous pour empêcher un cache non borné de regrossir ?
  • Comment les réglages du ramasse-miettes changent-ils ce que vous observez ici ?

Autres questions pour Développeur backend

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

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot