Descripción general de Cloud Profiler
Comprender el rendimiento de los sistemas de producción es muy difícil. Por lo general, intentar medir el rendimiento en entornos de prueba no replica las presiones de un sistema de producción. A veces, es posible realizar comparativas más pequeñas de tu aplicación, pero, por lo general, no replica la carga de trabajo y el comportamiento de un sistema de producción real.
La creación de perfiles continua de los sistemas de producción es una forma eficaz de descubrir dónde se consumen los recursos como CPU y memoria a medida que un servicio funciona en su entorno de trabajo. Sin embargo, la creación de perfiles agrega una carga adicional al sistema de producción; para ser una forma aceptable de descubrir patrones de consumo de recursos, la carga adicional de creación de perfiles debe ser pequeña.
Cloud Profiler es un generador de perfiles estadístico y de baja sobrecarga que recopila de manera continua información de tus aplicaciones de producción sobre la asignación de memoria y el uso de la CPU. Atribuye esa información al código fuente que la generó, lo que te ayuda a identificar las partes de tu aplicación que consumen más recursos y, por otra parte, ilumina las características de rendimiento de tus aplicaciones.
Tipos de perfiles disponibles
Cloud Profiler admite diferentes tipos de perfiles según el lenguaje en el que se escribe un programa. En la siguiente tabla, se resumen los tipos de perfiles compatibles por lenguaje:
Tipo de perfil | Go | Java | Node.js | Python |
---|---|---|---|---|
Tiempo de CPU | Sí | Sí | Sí | |
Montón | Sí | Sí | Sí | |
Montón asignado | Sí | |||
Contención | Sí | |||
Subprocesos | Sí | |||
Tiempo | Sí | Sí | S |
Para obtener información completa sobre los requisitos de lenguaje y las restricciones, consulta la página de instrucciones del lenguaje. Para obtener más información sobre estos tipos de perfiles, consulta el artículo sobre conceptos de creación de perfiles.
Configuraciones admitidas
Cuando instrumentas tu aplicación para capturar los datos del perfil, incluyes un agente de creación de perfiles específico del lenguaje. En la siguiente tabla, se resumen los entornos compatibles:
Entornos | Go | Java | Node.js | Python |
---|---|---|---|---|
Compute Engine | Sí | Sí | Sí | Sí |
Google Kubernetes Engine | Sí | Sí | Sí | Sí |
Entorno flexible de App Engine | Sí | Sí | Sí | Sí |
Entorno estándar de App Engine | Sí | Sí | Sí | Sí |
Dataproc | Sí | |||
Dataflow | Sí | Sí | ||
Fuera de Google Cloud | Sí | Sí | Sí | S |
En la siguiente tabla, se resumen los sistemas operativos compatibles:
Sistemas operativos | Go | Java | Node.js | Python |
---|---|---|---|---|
Implementación de glibc en Linux de la biblioteca C estándar |
S | Sí | Sí | S |
Implementación de musl en Linux de la biblioteca C estándar |
S | S (Alfa) | S | S (Alfa) |
Impacto en el rendimiento
Cloud Profiler crea un solo perfil mediante la recopilación de datos de creación de perfiles, generalmente durante 10 segundos, cada minuto, para una sola instancia del servicio configurado y en una sola zona de Compute Engine. Por ejemplo, si tu servicio de GKE ejecuta 10 réplicas de un pod, en un período de 10 minutos, se crean aproximadamente 10 perfiles y cada pod pasa por el proceso de creación de perfiles aproximadamente una vez. El período de creación de perfiles es aleatorio, por lo que hay variaciones. Consulta Colección de perfiles para obtener más información.
La sobrecarga de la CPU y la creación de perfiles de asignación de montón en el momento de la recopilación de datos es inferior al 5%. Amortizado en el tiempo de ejecución y en varias réplicas de un servicio, la sobrecarga suele ser inferior al 0.5%, por lo que es una opción asequible para la creación de perfiles continua en los sistemas de producción.
Componentes
Cloud Profiler consiste en el agente de creación de perfiles, que recopila los datos, y una interfaz de consola en Google Cloud, que te permite ver y analizar los datos que recopila el agente.
Agente de creación de perfiles
El agente se instala en las máquinas virtuales en las que se ejecuta tu aplicación. Por lo general, el agente viene como una biblioteca que conectas a tu aplicación cuando la ejecutas. El agente recopila datos de creación de perfiles a medida que se ejecuta la aplicación.
Para obtener información sobre cómo ejecutar el agente de Cloud Profiler, consulta:- Crea perfiles de aplicaciones Go
- Crea perfiles de aplicaciones Java
- Crea perfiles de aplicaciones Node.js
- Crea perfiles de aplicaciones Python
- Crea perfiles de aplicaciones que se ejecutan fuera de Google Cloud
Interfaz de Profiler
Una vez que el agente haya recopilado algunos datos de creación de perfiles, puedes usar la interfaz de Profiler para ver cómo las estadísticas de uso de CPU y memoria se correlacionan con áreas de tu aplicación.
Los datos del perfil se conservan durante 30 días, por lo que puedes analizar los datos de rendimiento de los períodos de hasta los últimos 30 días. Los perfiles se pueden descargar para su almacenamiento a largo plazo.
Cuotas y límites
Para obtener información sobre cómo ver y administrar tus cuotas de Profiler, consulta Cuotas y límites.
Seguridad de los datos
Cloud Profiler es un servicio compatible con los Controles del servicio de VPC. Para obtener más información, consulta la documentación de Controles del servicio de VPC.