Cómo mejorar el rendimiento de su aplicación: una receta sencilla para ajustar GC | Blog | bol.com

Cómo darle vida a un servicio REST de baja latencia y alta carga

Pregunta de prueba. Tiene un servicio de baja latencia y alta carga que se ejecuta en 42 máquinas virtuales, cada una con 2 núcleos de CPU. Algún día, migrarás tus nodos de aplicaciones a cinco bestias de servidores físicos, cada uno con 32 núcleos de CPU. Dado que cada máquina virtual tenía un montón de 2 GB, ¿qué tamaño debería tener cada servidor físico?

Entonces, debes dividir 42 * 2 = 84 GB de memoria total en cinco máquinas. Eso se reduce a 84/5 = 16,8 GB por máquina. Para no correr riesgos, redondea este número a 25 GB. Suena plausible, ¿verdad? Bueno, la respuesta correcta parece ser menos de 2 GB, porque ese es el número que obtuvimos al calcular el tamaño del montón basado en el LDS. ¿No puedes creerlo? No te preocupes, nosotros tampoco lo podíamos creer. Por lo tanto, decidimos realizar un experimento.

Configuración del experimento

Tenemos cinco nodos de aplicación, por lo que podemos ejecutar nuestro experimento con cinco montones de diferentes tamaños. Le damos al nodo uno 2 GB, al nodo dos 4 GB, al nodo tres 8 GB, al nodo cuatro 12 GB y al nodo cinco 25 GB. (Sí, no somos lo suficientemente valientes como para ejecutar nuestra aplicación con un montón de menos de 2 GB).

Como siguiente paso, iniciamos nuestras pruebas de rendimiento generando una carga estable, similar a la de producción, de unas desconcertantes 56.000 solicitudes por segundo. A lo largo de toda la ejecución de este experimento, medimos la cantidad de solicitudes que recibe cada nodo para garantizar que la carga esté equilibrada por igual. Es más, medimos el indicador clave de rendimiento de este servicio: la latencia.

Debido a que nos cansamos de descargar los registros del GC después de cada prueba, invertimos en paneles de Grafana para mostrarnos los tiempos de pausa, el rendimiento y el tamaño del montón del GC después de una recolección de basura. De esta manera podemos inspeccionar fácilmente el estado del GC.

Resultados

Este blog trata sobre el ajuste de GC, así que comencemos con eso. La siguiente figura muestra los tiempos de pausa y el rendimiento del GC. Recuerde que los tiempos de pausa indican cuánto tiempo el GC congela la aplicación mientras barre la memoria. Luego, el rendimiento especifica el porcentaje de tiempo que el GC no pausa la aplicación.


Source link

About David Lopez

Informático y experto en redes. Redactor en varios blogs tecnológicos desde hace 4 años y ahora en Steamachine.net

Check Also

Noticias semanales para diseñadores № 731

Buenas prácticas de Git Prácticas esenciales de Git para desarrolladores, que cubren la gestión de …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *