Esa combinación apunta a agotamiento del pool de conexiones o a un límite de concurrencia parecido, no a que la base de datos esté lenta. Mira el tiempo de espera del pool y las conexiones activas frente a las ociosas: las peticiones hacen cola por una conexión mientras cada poseedor la retiene demasiado, a menudo por una llamada externa lenta dentro de una transacción, un timeout que falta o una conexión filtrada que nunca se devuelve. Arregla primero el tiempo de retención y luego dimensiona el pool a conciencia.
Por qué lo preguntan los entrevistadores
Es un incidente realista donde la métrica obvia parece sana, así que pone a prueba si razonas sobre todo el camino de la petición. El entrevistador quiere oír hablar de hacer cola por un recurso, del peligro de hacer llamadas de red dentro de una transacción y de por qué un pool más grande suele ser el arreglo equivocado. Saber que el tamaño del pool debe relacionarse con la capacidad de la base de datos y no con el número de instancias demuestra experiencia operativa real.
Cómo estructurar tu respuesta
- Replantea el síntoma como espera por un recurso, no como consultas lentas.
- Nombra las métricas que lo confirman: tiempo de espera del pool, conexiones activas, saturación.
- Enumera las causas habituales de retener una conexión demasiado tiempo.
- Explica cómo dimensionas el pool y qué pasa si solo lo subes.
Ejemplo de respuesta
Consultas rápidas más peticiones lentas significa que el tiempo se va esperando algo, y el pool es el sospechoso habitual. Miraría el tiempo de espera del pool y cuánto se retienen las conexiones, más el recuento del lado de la base de datos de sesiones activas frente a idle in transaction. Un montón de idle in transaction es la pista: algo abrió una transacción y luego hizo trabajo que no es de base de datos. Esa es casi siempre la causa, una llamada HTTP a una pasarela de pago o un paso de serialización lento metido dentro de una transacción, así que cada petición retiene una conexión un segundo en vez de cinco milisegundos y el pool se vacía con una fracción del tráfico. El arreglo es acortar la sección crítica: hacer la llamada externa antes o después de la transacción, añadir timeouts de sentencia y de transacción, y asegurar que todos los caminos devuelven su conexión incluso ante un error. Solo después tocaría el tamaño, y con cuidado, porque cada instancia lo multiplica. Subir el pool sin arreglar el tiempo de retención solo mueve la cola a la base de datos y convierte un endpoint lento en una caída global.
¿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 el tamaño correcto de pool para diez instancias de aplicación?
- ¿Qué indica idle in transaction y cómo lo detectas pronto?
- ¿En qué ayuda un proxy de conexiones y qué no resuelve?
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