Medir el rendimiento de las aplicaciones
En este documento se explica cómo configurar y usar Cloud Profiler. Utilizarás Cloud Shell para descargar un programa Go de ejemplo, ejecutarlo con la elaboración de perfiles habilitada y, a continuación, usar la interfaz de Profiler para consultar los datos recogidos.
Si tienes previsto crear perfiles de aplicaciones que se ejecuten fuera deGoogle Cloud, debes seguir algunos pasos de configuración que no se explican en este documento. Para obtener información sobre estos pasos, consulta Crear perfiles de aplicaciones que se ejecutan fuera Google Cloud.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Para abrir Cloud Shell, en la barra de herramientas de la consola Google Cloud , haz clic en
Activar Cloud Shell:
Al cabo de unos segundos, se abrirá una sesión de Cloud Shell en la consolaGoogle Cloud :
- El marco gris representa todo el archivo ejecutable, que supone el 100% de los recursos consumidos.
- El marco verde
main
es elruntime.main
de Go. - El marco naranja
main
es lamain
rutina del programa de ejemplo. - El marco naranja
busyloop
es una rutina llamada desde elmain
de la muestra. - El marco naranja
main.load
es una rutina llamada desde elmain
de la muestra. - Descripción general de Cloud Profiler
- Conceptos de la elaboración de perfiles
- Consulta nuestros recursos sobre DevOps y descubre el programa de investigación de DORA.
- 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
Obtener un programa para crear un perfil
El programa de ejemplo, main.go
, se encuentra en el repositorio golang-samples
de GitHub. Para obtenerlo, ejecuta el siguiente comando en Cloud Shell para recuperar el paquete de ejemplos de Go:
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
El proceso de recuperación del paquete tarda unos instantes en completarse.
Perfil del código
En Cloud Shell, ve al directorio del código de ejemplo de Profiler en el paquete recuperado:
cd golang-samples/profiler/profiler_quickstart
El programa main.go
crea una carga de trabajo que requiere mucha CPU para proporcionar datos al generador de perfiles. En Cloud Shell, ejecuta el siguiente comando para iniciar el programa y déjalo en ejecución:
go run main.go
Este programa está diseñado para cargar la CPU mientras se ejecuta. Está configurado para usar Profiler, que recoge datos de creación de perfiles del programa mientras se ejecuta y los guarda periódicamente.
Unos segundos después de iniciar el programa, aparece el mensaje
profiler has started
. Al cabo de un minuto, se muestran dos mensajes más:
successfully created profile CPU
start uploading profile
Estos mensajes indican que se ha creado un perfil y se ha subido a tu proyecto de Cloud Storage. El programa sigue emitiendo los dos últimos mensajes, aproximadamente una vez por minuto, mientras se ejecuta.
Si recibes un mensaje de error de permiso denegado después de iniciar el servicio, consulta la sección Errores con la configuración de tu proyecto Google Cloud .
Interfaz de Profiler
Unos instantes después de iniciar la aplicación, Profiler muestra los datos iniciales del perfil. La interfaz ofrece una serie de controles y un gráfico de llamas para explorar los datos de creación de perfiles:
Además de los controles de tiempo, hay opciones que te permiten elegir el conjunto de datos de perfil que quieres usar. Cuando creas perfiles de varias aplicaciones, usas Servicio para seleccionar el origen de los datos del perfil. Tipo de perfil te permite elegir el tipo de datos de perfil que quieres mostrar. Los campos Nombre de zona y Versión te permiten restringir la visualización a los datos de las zonas de Compute Engine o de las versiones de la aplicación. Peso: te permite seleccionar los perfiles capturados durante los picos de consumo de recursos.
Para acotar la forma en que el gráfico de llamas muestra los perfiles que has seleccionado para analizar, añade filtros. En la captura de pantalla anterior, la barra de filtros filter_list muestra un filtro. Esta opción de filtro es Metric
y el valor de filtro es CPU time
.
Explorar los datos
El gráfico de llamas muestra las pilas de llamadas del programa. El gráfico de llamas representa cada función con un marco. La anchura del marco representa la proporción del consumo de recursos de esa función. El marco superior representa todo el programa. Este marco siempre muestra el 100 % del consumo de recursos. En este marco también se indica cuántos perfiles se han promediado en este gráfico.
El programa de ejemplo no tiene un conjunto complicado de pilas de llamadas. En la captura de pantalla anterior, se ven cinco marcos:
El selector de filtros le permite, entre otras cosas, filtrar funciones que coincidan con un nombre. Por ejemplo, si hay una biblioteca estándar de funciones de utilidad, puedes quitarlas del gráfico. También puedes quitar las pilas de llamadas que se originan en un método determinado o simplificar el gráfico de otras formas.
La aplicación main.go
es sencilla, así que no hay mucho que filtrar.
Incluso en una aplicación sencilla, los filtros te permiten ocultar los fotogramas que no te interesan para que puedas ver con más claridad los que sí. Por ejemplo, en la captura de pantalla de creación de perfiles del código de muestra, el marco gris es ligeramente más grande que el primer marco main
que hay debajo. ¿Por qué? ¿Hay algo más que no se aprecia a primera vista porque la main
pila de llamadas consume un porcentaje tan abrumador de los recursos?
Para ver lo que ocurre fuera de la rutina main
de la aplicación, añade un filtro que oculte la pila de llamadas de la rutina main
.
Solo el 0,227% del consumo de recursos se produce fuera de main
:
Para obtener más información sobre cómo filtrar y explorar los datos de creación de perfiles de otras formas, consulta Seleccionar los perfiles que se van a analizar.
Siguientes pasos
Para obtener información general sobre la creación de perfiles, consulta los siguientes documentos: