Esta fue una de las preguntas que me hicieron en una de las entrevistas telefónicas. Me pidieron que encontrara posibles razones para una aplicación web que tiene un tiempo de respuesta global bajo con carga alta pero un tiempo de respuesta alto con carga baja. Se me pidió que proporcionara posibles problemas y qué métricas de monitoreo verificaría para confirmar cada razón.
Algunas de las razones que di fue
1. Calentamiento de caché: mi primera respuesta fue verificar la proporción de aciertos en mi capa de caché con poca carga. Esto significa que la forma en que se diseñan los cachés en la aplicación es que necesitan algunos errores para cargar datos en el caché y luego el acceso posterior se servirá desde el caché, todo depende de la localidad de los datos y puede ser que la aplicación tenga una ubicación temporal significa caché las fallas conducirán a posteriores aciertos de caché
- ¿Cómo afectará la automatización de todo a la economía?
- ¿Qué pasaría si la tecnología se vuelve tan barata y avanzada que ya no será necesario trabajar por dinero, y todos los humanos vivirían en paz?
- ¿Cuáles son los mejores teléfonos móviles baratos que son solo para llamadas en Europa?
- ¿Por qué se considera que los píxeles de la imagen tienen forma cuadrada?
- ¿Cómo afectará 5G a la sociedad?
2. Equilibrador de carga sesgado: otra razón puede ser que el equilibrador de carga no distribuye la solicitud de manera uniforme en el clúster, esto se puede verificar comprobando la distribución de las solicitudes con poca carga y si hay puntos calientes. Básicamente, trate de descubrir la posibilidad de que el balanceador de carga esté sesgado a baja carga e incluso distribución a alta carga.
3. Lotes inteligentes: en algunas aplicaciones, procesamos datos por lotes en función del volumen y el intervalo de tiempo, lo que ocurra antes. En tales casos, con una carga alta en todo momento y el tiempo de respuesta se distribuiría de manera justa. Sin embargo, en caso de que las ráfagas sean lo suficientemente pequeñas como para no cruzar el umbral de volumen, cada lote se agotará y, en general, el procesamiento llevará más tiempo. Por ejemplo, supongamos que tengo un servicio que escucha los mensajes y los procesa en lotes durante 5 minutos o 1000 mensajes, lo que sea anterior, en lotes de carga alta se procesará mucho más rápido debido al umbral de volumen, sin embargo, en un volumen bajo, digamos ráfaga de 50 mensajes a la vez , todo mi lote tardaría al menos 5 minutos. Esto es algo que me sucedió en el pasado cuando noté este problema sobre la desaceleración en el procesamiento de datos a bajo volumen, aunque esa no era una aplicación web.