![Bajo rendimiento de la aplicación Spring al filtrar datos](https://rvso.com/image/756217/Bajo%20rendimiento%20de%20la%20aplicaci%C3%B3n%20Spring%20al%20filtrar%20datos.png)
- Creé la aplicación Spring en el motor de aplicaciones B2, puedo ver en los registros que la aplicación tarda 1 segundo en completar el filtrado de datos (después de activar la aplicación). Cuando estoy en mi máquina local, tarda 10 ms.
- El tamaño de los datos es realmente pequeño y la lógica no es tan compleja, apenas el comienzo del proyecto.
Entonces, mi pregunta es: ¿es posible que a la instancia del motor de mi aplicación le falten algunos recursos o algo? Quizás me falta alguna configuración u OPCIONES DE JAVA, porque ahora uso default. Quizás alguien haya enfrentado problemas de rendimiento similares.
Actualizar. Nuevamente intenté usar instancias B1 B2 B3 B4. Mismos resultados. Parece que las aplicaciones tienen una cantidad realmente pequeña de recursos.
Problema resuelto cuando creé Compute Engine VM. En la máquina virtual tengo ejecutando la imagen de Docker con la misma aplicación. Y ahora funciona bien. Las respuestas son geniales.
Me encantaría usar App Engine, pero todavía no puedo entender la causa. Utilizo todas las configuraciones predeterminadas de app.yaml de los tutoriales de Google sin opciones adicionales.
Actualización 2. Intenté utilizar el entorno App Engine Flex, con diferentes opciones. Sigue siendo el mismo resultado. Tal vez pueda ver la diferencia cuando llamo a la misma API más veces, en lugar de obtener una respuesta de 30 segundos, obtengo 28 25. Entonces, mi conclusión es que el motor de la aplicación (según tengo entendido) no es adecuado para trabajar con operaciones pico de CPU complejas de JAVA (FILTRO, ORDENAR ENTIDAD ) .. En Compute Engine mi solución funciona bien. Luego fui a probar GKE y también funciona perfecto allí desde 30 segundos (sin sobrecarga de inicio), la respuesta disminuyó a 200 ms. En GCE o GKE utilizo la máquina virtual con el rango de recursos más bajo.
Respuesta1
Al cambiar la clase de instancia a una aún más eficiente para operaciones computacionales (como una clase de instancia deB4, con un límite de CPU más alto, en su caso) de hecho haría que su aplicación sea más rápida en ese sentido, pero sin embargocuesta mas.
Antes de actualizar su clase de instancia, le recomendamos garantizar que no se pueda hacer nada mediante programación para mejorar la velocidad de su aplicación, ya que en este caso el precio probablemente se duplicará.