Descripción general de Cloud Profiler
Conocer el rendimiento de los sistemas de producción es muy difícil. Si intentas medir el rendimiento en entornos de prueba, normalmente no se replicarán las presiones que sufre un sistema de producción. A veces, es posible realizar microbenchmarking en partes de tu aplicación, pero normalmente no se consigue replicar la carga de trabajo y el comportamiento de un sistema de producción.
La creación de perfiles continua de los sistemas de producción es una forma eficaz de descubrir dónde se consumen recursos como los ciclos de CPU y la memoria mientras un servicio opera en su entorno de trabajo. Sin embargo, la creación de perfiles añade una carga adicional al sistema de producción: para que sea una forma aceptable de descubrir patrones de consumo de recursos, la carga adicional de la creación de perfiles debe ser pequeña.
Cloud Profiler es un generador de perfiles estadístico de baja sobrecarga que recoge continuamente información sobre el uso de la CPU y la asignación de memoria de tus aplicaciones en producción. Atribuye esa información al código fuente que la ha generado, lo que te ayuda a identificar las partes de tu aplicación que consumen más recursos y a conocer las características de rendimiento de tus aplicaciones.
Tipos de elaboración de perfiles disponibles
Cloud Profiler admite diferentes tipos de creación de perfiles en función del lenguaje en el que se escriba un programa. En la siguiente tabla se resumen los tipos de perfil admitidos por idioma:
Tipo de perfil | Go | Java | Node.js | Python |
---|---|---|---|---|
Tiempo de CPU | Y | S | Y | |
Montículo | Y | S | Y | |
Montículo asignado | Y | |||
Contención | Y | |||
Conversaciones | Y | |||
Tiempo real | Y | S | Y |
Para obtener información completa sobre los requisitos de idioma y las restricciones, consulta la página de instrucciones del idioma en cuestión. Para obtener más información sobre estos tipos de perfiles, consulta Conceptos de creación de perfiles.
Configuraciones admitidas
Cuando instrumentas tu aplicación para capturar datos de perfil, incluyes un agente de creación de perfiles específico del lenguaje. En la siguiente tabla se resumen los entornos admitidos:
Entornos | Go | Java | Node.js | Python |
---|---|---|---|---|
Compute Engine | Y | S | S | Y |
Google Kubernetes Engine | Y | S | S | Y |
Entorno flexible de App Engine | Y | S | S | Y |
Entorno estándar de App Engine | Y | S | S | Y |
Dataproc | Y | |||
Dataflow | Y | Y | ||
Fuera de Google Cloud | Y | S | S | Y |
En la siguiente tabla se resumen los sistemas operativos compatibles:
Sistemas operativos | Go | Java | Node.js | Python |
---|---|---|---|---|
Implementación de Linuxglibc de la biblioteca estándar de C. |
Y | S | S | Y |
Implementación de Linuxmusl de la biblioteca estándar de C. |
Y | Y (alfa) | Y | Y (alfa) |
Impacto en el rendimiento
Cloud Profiler crea un único perfil recogiendo datos de creación de perfiles, normalmente durante 10 segundos, cada minuto para una sola instancia del servicio configurado en una sola zona de Compute Engine. Por ejemplo, si tu servicio de GKE ejecuta 10 réplicas de un pod, en un periodo de 10 minutos se crearán aproximadamente 10 perfiles y cada pod se perfilará aproximadamente una vez. El periodo de creación de perfiles se aleatoriza, por lo que hay variación. Consulta más información sobre la recogida de datos de perfiles.
La sobrecarga de la creación de perfiles de asignación de CPU y montículo en el momento de la recogida de datos es inferior al 5 %. La sobrecarga, amortizada durante el tiempo de ejecución y en varias réplicas de un servicio, suele ser inferior al 0,5 %, lo que la convierte en una opción asequible para la creación de perfiles siempre activos en sistemas de producción.
Componentes
Cloud Profiler consta del agente de creación de perfiles, que recoge los datos, y de una interfaz de consola en Google Cloud, que te permite ver y analizar los datos recogidos por el agente.
Agente de creación de perfiles
Instalas el agente en las máquinas virtuales en las que se ejecuta tu aplicación. El agente suele ser una biblioteca que se adjunta a tu aplicación cuando la ejecutas. El agente recoge datos de perfil mientras se ejecuta la aplicación.
Para obtener información sobre cómo ejecutar el agente de Cloud Profiler, consulta los siguientes artículos:- Elaborar perfiles de aplicaciones de Go
- Crear perfiles de aplicaciones Java
- Crear perfiles de aplicaciones Node.js
- Crear perfiles de aplicaciones Python
- Crear perfiles de aplicaciones que se ejecutan fuera de Google Cloud
Interfaz de Profiler
Una vez que el agente haya recogido algunos datos de perfil, puede usar la interfaz de Profiler para ver cómo se correlacionan las estadísticas de uso de la CPU y la memoria con las áreas de su aplicación.
Los datos del perfil se conservan durante 30 días, por lo que puede analizar los datos de rendimiento de periodos de hasta los últimos 30 días. Los perfiles se pueden descargar para almacenarlos a largo plazo.
Cuotas y límites
Para obtener información sobre cómo ver y gestionar tus cuotas de Profiler, consulta Cuotas y límites.
Seguridad de los datos
Cloud Profiler es un servicio compatible con Controles de Servicio de VPC. Para obtener más información, consulta la documentación de Controles de Servicio de VPC.