Confirma primero el patrón en las métricas: un crecimiento constante apunta a una fuga o a una caché sin límite, mientras que un pico brusco apunta a una sola petición que carga demasiado de golpe. Captura un perfil de memoria antes y después de un periodo de crecimiento y compara las asignaciones retenidas. Las causas habituales son cachés sin desalojo, colecciones que crecen colgando de objetos de vida larga, recursos sin cerrar y endpoints que cargan un conjunto de resultados entero en memoria.
Por qué lo preguntan los entrevistadores
El entrevistador quiere un método y no una conjetura, más pruebas de que has usado un profiler en serio. Distinguir crecimiento gradual de picos es la división diagnóstica clave, y cambia dónde miras. También comprueba si recurrirías a reiniciar y subir el límite de memoria como respuesta permanente, lo que oculta el problema hasta que el tráfico se duplique.
Cómo estructurar tu respuesta
- Separa el crecimiento constante de la asignación con picos usando las métricas.
- Captura y compara perfiles de memoria a lo largo de una ventana de crecimiento.
- Enumera las causas habituales y revisa los cambios recientes.
- Pon una protección para que no se pueda repetir en silencio.
Ejemplo de respuesta
La forma de la gráfica me dice dónde mirar. Una subida lenta durante días que sobrevive a los periodos tranquilos es una fuga o una caché sin límite. Un diente de sierra que pica en peticiones concretas significa que algo carga demasiado de golpe. Para el primer caso tomo perfiles de memoria con unas horas de diferencia bajo tráfico parecido y los comparo por tamaño retenido, y luego miro qué sostiene los objetos más grandes. En la práctica ha sido casi siempre algo aburrido: un mapa usado como caché sin desalojo ni máximo, una etiqueta de métrica construida a partir de un valor que envía el usuario, con lo que la cardinalidad crecía sin fin, o listeners registrados sobre un objeto de vida larga que nunca se quitaban. Para los picos busco endpoints que leen una tabla entera a una lista en vez de ir en streaming, o un proceso por lotes que carga todas las filas antes de escribir. Me topé exactamente con eso en una exportación a CSV que materializaba un millón de filas; hacerla en streaming por páginas dejó la memoria plana. Después añado una alerta sobre la tendencia de memoria y no solo sobre la caída, para enterarme antes que el reinicio.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo decidirías si es una fuga o simplemente un conjunto de trabajo grande?
- ¿Qué limitarías para que una caché sin límite no vuelva a crecer?
- ¿Cómo cambian los ajustes del recolector de basura lo que ves aquí?
Más preguntas para Desarrollador backend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas