前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Pprof

作者头像
全栈程序员站长
发布2022-09-16 16:48:41
1790
发布2022-09-16 16:48:41
举报
文章被收录于专栏:全栈程序员必看

安装

  1. 安装go-torch
代码语言:javascript
复制
go get github.com/uber/go-torch
  1. 安装FlameGraph
代码语言:javascript
复制
cd $WORK_PATH && git clone https://github.com/brendangregg/FlameGraph.git
export PATH=$PATH:$WORK_PATH/FlameGraph
  1. 安装graphviz
代码语言:javascript
复制
yum install graphviz
  1. 使用pprof
代码语言:javascript
复制
package main

import (
    "net/http"
    _ "net/http/pprof"
)

func main() {
    // 服务端启动一个协程,支持pprof的handler
    //导入pprof的包,自动包含一些handler
	//项目加入如下代码
    go func() {
        http.ListenAndServe("0.0.0.0:8888", nil)
    }()
	//other code
}

ab压测

  1. 安装apache
  2. 使用ab命令
  3. 基本使用
代码语言:javascript
复制
ab -n 19999 -c 20 http://xxxxxxxxxxxx
-n 总数
-c 同时并发请求数

pprof使用

  1. 监听
代码语言:javascript
复制
go tool pprof http://localhost:port/debug/pprof/profile
  1. 操作 进入30秒的profile收集时间,在这段时间内请求服务,尽量让cpu占用性能产生数据
  2. pprof命令
代码语言:javascript
复制
top
在默认情况下,top命令会输出以本地取样计数为顺序的列表。我们可以把这个列表叫做本地取样计数排名列表。
web
与gv命令类似,web命令也会用图形化的方式来显示概要文件。但不同的是,web命令是在一个Web浏览器中显示它。

火焰图工具使用

  1. 监听
代码语言:javascript
复制
//cpu火焰图
go-torch -u http://ip:port/debug/pprof/ -p > profile-cpu.svg
//内存火焰图
go-torch -u http://ip:port/debug/pprof/heap -p > profile-heap.svg
  1. 操作
代码语言:javascript
复制
针对测试服务端,进行操作,上述步骤默认监听30s,即30s后可以生成相关图像

参考

  1. Golang FlameGraph

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166803.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • ab压测
  • pprof使用
  • 火焰图工具使用
  • 参考
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档