参加 2021 年 DevOps 现状问卷调查,塑造软件运维的未来,让我们了解您的想法。

Cloud Profiler 示例

本页面提供了有关使用 Cloud Shell 从 GitHub golang-samples/profiler 代码库下载和运行示例的指南。您还可以在 Google Cloud 外部运行这些示例。如需了解这种情况所需的其他配置步骤,请参阅剖析在 Google Cloud 外部运行的应用的性能

如果您选择运行这些程序,则可以快速创建性能剖析数据,以用于探索 Cloud Profiler 界面的功能。 您还可以修改这些示例的副本,然后使用 Cloud Profiler 界面重新部署和分析更改所带来的影响。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 启用 Cloud Profiler API。

    启用 API

启动 Cloud Shell

在项目的 Google Cloud Console 页面的顶部,点击激活 Cloud Shell

激活 Cloud Shell。

一个 Cloud Shell 会话随即会在控制台底部的新方框内打开,并显示两条消息和一个命令行提示符。第一条消息为您的 Cloud Shell 会话列出了 Google Cloud 项目。第二条消息告诉您如何更改会话项目。该 Shell 会话可能需要几秒钟来完成初始化:

Cloud Shell 会话。

获取要执行性能剖析的程序

从 Cloud Shell 中检索 Go 示例的软件包:

go get -u github.com/GoogleCloudPlatform/golang-samples/profiler/...

软件包检索需要一些时间才能完成。

profiler_quickstart

示例 profiler_quickstart 已配置为运行 hello-profiler 服务。Profiler 快速入门使用了此示例。

如需启动 hello-profiler,请执行以下操作:

  1. 切换到 profiler_quickstart 目录:

    cd ~/gopath/src/github.com/GoogleCloudPlatform/golang-samples/profiler/profiler_quickstart
    
  2. 通过运行以下命令启动服务:

    go run main.go
    

启动服务几秒钟后,您的 Cloud Shell 会话中会显示消息 profiler has started。每次将性能剖析文件上传到您的 Google Cloud 项目时,系统都会显示新消息。

如需停止服务,请按 Ctrl-C。

hotapp

示例 hotapp 使用无限循环来调用两个函数,然后调用 Go 调度器。该示例支持设置 -local_work 标志。如果此标志是 true,则系统将以 for 循环的形式向单个函数添加工作。默认情况下,系统会将此标志设置为 false

如需运行 hotapp 示例,请执行以下操作:

  1. 切换到 hotapp 目录:

    cd ~/gopath/src/github.com/GoogleCloudPlatform/golang-samples/profiler/hotapp
    
  2. 通过运行以下命令启动服务:

    go run main.go
    

    如果您希望生成与界面概览过滤页面中显示的数据一致的性能剖析文件数据,请使用以下调用:

    go run main.go -service=docdemo-service -local_work -skew=75 -version=1.75.0
    

启动服务几秒钟后,您的 Cloud Shell 会话中会显示消息 profiler has started。每次将性能剖析文件上传到您的 Google Cloud 项目时,系统都会显示新消息。

如需停止服务,请按 Ctrl-C。

比较性能剖析文件部分使用了 docdemo-service 的两个不同部署。在第一个部署中,skewversion 如前所述进行了设置。在第二个部署中,skew 设置为 25,而 version 设置为 1.25.0

问题排查

如果在启动服务后收到没有权限错误消息,请参阅 Google Cloud 项目配置错误