Métodos prácticos para el análisis y resolución de problemas de rendimiento.

Algunos estudiantes de Knowledge Planet encontraron un problema de rendimiento. El problema es el siguiente: los recursos estáticos se colocan en Nginx y el tamaño de los recursos es de aproximadamente diez M. Nginx se implementa con Docker. Durante la prueba de presión, se descubrió que La carga de recursos estáticos fue muy lenta. Pregunte en el grupo cómo solucionar problemas y analizarlos.

Este es un problema de rendimiento muy común, que suele deberse a recursos insuficientes como ancho de banda y memoria. Por supuesto, el análisis de los problemas de rendimiento no puede realizarse arbitrariamente basándose en conjeturas y experiencia, sino que debe analizarse y verificarse con pensamiento de ingeniería y finalmente optimizarse y verificarse .

En este artículo, combinado con mi propia experiencia, hablaré sobre los métodos de análisis y resolución de problemas de rendimiento en la práctica.

Cadena de análisis de problemas de rendimiento.

Echemos un vistazo al mapa mental a continuación, que es el método de análisis que suelo utilizar cuando encuentro problemas de rendimiento en mi trabajo, lo llamo cadena de análisis.

Como se muestra en la figura anterior, la cadena de análisis debería verse así (los datos son solo de referencia):

  • Observe el desempeño del problema : entorno de prueba, configuración del servicio 2C4G, incrementos de concurrencia de 20 a 200, la concurrencia alcanza 100, RT se dispara, 20% de solicitudes incorrectas;

  • Encuentre enlaces de evidencia : descubra dónde hay un problema, como ancho de banda completo, uso del 100% de la memoria, una gran cantidad de tiempos de espera de solicitudes, informes de errores y pilas anormales;

  • Analice la causa del problema : ¿Por qué ocurren estos problemas? El análisis general es de arriba hacia abajo, es decir, arquitectura del sistema de código de configuración de escenario de datos de script;

  • Verificación de optimización del rendimiento : utilice la supervisión y los registros para encontrar rápidamente posibles causas mediante el método de eliminación (requiere una gran experiencia como base) y luego depure y verifique las conjeturas. Si no hay ningún problema, modifique el problema y vuelva a probarlo y verifíquelo, y observe el monitoreo y los registros a tiempo para confirmar que el problema se ha resuelto;

Caso de práctica de análisis de desempeño

Tomando como ejemplo la pregunta del alumno al inicio del artículo, ¿cómo debemos analizarla?

En primer lugar, en este escenario de prueba de estrés se cargarán archivos estáticos. Nuestros recursos estáticos comunes incluyen principalmente imágenes o algunas páginas frontales; en segundo lugar, si el tamaño del recurso es 10+M, se puede suponer que este recurso estático es un Imagen o video corto; en la descripción del problema se menciona que Nginx se implementa con Docker y los recursos estáticos están montados en Nginx, por lo que se deben considerar los recursos de almacenamiento de Nginx, ¿por qué?

Durante la prueba de estrés, generalmente se simulan múltiples solicitudes de diferentes usuarios para acceder a la URL. Si se devuelven diferentes imágenes para cada solicitud y la concurrencia es relativamente alta, la presión de IO del servicio será relativamente alta. Hay otra situación que debe considerarse, es decir, los recursos de ancho de banda de la red entre el clúster de prueba de estrés y el servicio bajo prueba. Si el ancho de banda es de solo 100 M, el valor máximo teórico de la eficiencia de transmisión real es de solo 12,5 M/S. . En este escenario, habrá un problema: incluso si la concurrencia es alta, su TPS real puede ser <= 1.

El error que muchos estudiantes de pruebas suelen cometer al realizar pruebas de rendimiento es ignorar los escenarios comerciales reales y la configuración y el ancho de banda de la red del servicio bajo prueba, y simular sin pensar solicitudes de alta concurrencia, lo cual no es científico ni razonable. De hecho, se deben considerar escenarios comerciales específicos y la configuración del servicio bajo prueba , y luego diseñar scripts , como el escenario seckill común de las empresas de comercio electrónico, en este momento se puede simular una alta concurrencia.

En los problemas anteriores, hay dos puntos a considerar: el primero es montar recursos estáticos relativamente grandes en Nginx, y una solución técnica más razonable debería ser recursos estáticos o archivos grandes, y utilizar servicios especiales de almacenamiento de archivos, como imágenes. almacenarse en CND. El segundo punto también se pasa por alto fácilmente: para mejorar el rendimiento, es mejor comprimir el archivo antes de transmitirlo y luego descomprimirlo en la capa de visualización. Por supuesto, la premisa de esto es que no hay requisitos de alta resolución. para la imagen.

Muchos artículos en Internet presentan cómo utilizar herramientas de prueba de estrés, cómo preparar datos de prueba y cómo simular habilidades de concurrencia, pero en mi opinión, estos son solo medios. La parte más importante de las pruebas de rendimiento es la etapa de análisis de requisitos de rendimiento. En la etapa de análisis, se deben tener en cuenta tanto como sea posible las características del escenario empresarial bajo prueba, si la arquitectura del sistema y el esquema de implementación técnica detrás de él son razonables, y si existen posibles cuellos de botella en el rendimiento. La prueba de presión es sólo un medio de verificación, no el propósito de la verificación .

En los últimos años, todo el mundo habla de desplazar las pruebas hacia la izquierda: además de la calidad integrada y el control de acceso de calidad, en realidad son más importantes el análisis y la evaluación de la etapa de requisitos y la preparación de una estrategia ascendente.

Finalmente: el video tutorial completo de prueba de software a continuación se ha ordenado y subido, y los amigos que lo necesiten pueden obtenerlo ellos mismos [Garantizado 100% gratis]

Documentación de la entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los últimos materiales de entrevista de empresas de Internet de primer nivel como Ali, Tencent y Byte, y algunos jefes de Byte han dado respuestas autorizadas. Termine este conjunto Los materiales de la entrevista Creemos que todos pueden encontrar un trabajo satisfactorio.

Supongo que te gusta

Origin blog.csdn.net/wx17343624830/article/details/132667615
Recomendado
Clasificación