A medida que aumenta el número de usuarios de servicios web, inevitablemente se encontrarán con problemas de rendimiento, como tiempos de respuesta lentos y caídas del servidor. La optimización del front-end es importante, pero el back-end, que es responsable del procesamiento de datos fundamentales, suele ser el cuello de botella.
Este artículo proporciona una lista de puntos de control prácticos para los ingenieros que trabajan para mejorar el rendimiento del backend por primera vez.
🚨 5 puntos de control para revisar
El ajuste del rendimiento no será efectivo si se realiza a ciegas. Primero, verifique si los siguientes elementos son la causa.
- **¿No está ocurriendo el problema N+1? **
- El problema N+1 a menudo ocurre inconscientemente cuando se utiliza un mapeador O/R (ORM). Al recuperar datos de la lista, verifique el registro de consultas para ver si está emitiendo SQL que recorre los datos relacionados uno por uno.
- **¿Están los índices adjuntos correctamente? **
- Los índices son los más directamente relacionados con la velocidad de búsqueda en la base de datos. Establezca un índice apropiado (simple o compuesto) para las columnas que se utilizan con frecuencia en condiciones de búsqueda o condiciones de clasificación.
- **¿Estás utilizando tu caché de forma eficaz? **
- Al almacenar en memoria caché los datos a los que se accede con frecuencia pero que rara vez se actualizan (como los datos maestros) en la memoria mediante Redis o Memcached, la carga en la base de datos se puede reducir drásticamente.
- **¿Estás esperando demasiado en las llamadas a API externas? **
- Si la comunicación con una API de terceros u otro microservicio es un proceso sincrónico, el proceso se bloqueará allí. Si es posible, considere un diseño que utilice procesamiento asincrónico o un trabajador en segundo plano.
- **¿Hay pérdidas de memoria? **
- Si el rendimiento de una aplicación que ha estado ejecutándose durante mucho tiempo se deteriora gradualmente, se puede sospechar de una pérdida de memoria. Utilice un generador de perfiles para investigar si quedan referencias a objetos innecesarias.
🛠️ No hay mejora sin medición
Lo peor que se puede hacer al realizar un ajuste es “arreglarlo adivinando”. Mi intuición de que “siento que aquí todo va lento” a menudo resulta errónea.
Primero, introduzca una herramienta APM (monitoreo del rendimiento de aplicaciones) como New Relic o Datadog para visualizar numéricamente qué transacciones y qué procesos (tiempo de ejecución de SQL, comunicación externa, etc.) están tomando tiempo.
💡 Mentalidad de ajuste
Lo último que hay que recordar es que no todo tiene que ser lo más rápido. A menudo, desde la perspectiva del costo de mantenimiento, no vale la pena introducir un mecanismo de almacenamiento en caché complicado para ahorrar unos segundos en un proceso por lotes que se ejecuta solo una vez al día.
Identifique puntos finales críticos que estén directamente conectados con la experiencia del usuario y concentre recursos en ellos. Ese es el primer paso para convertirse en un gran ingeniero backend. Sé consciente de la “medición” en tu desarrollo diario y ve mejorando poco a poco.

