首页 > 其他 > 详细

Pprof

时间:2020-03-15 15:07:01      阅读:51      评论:0      收藏:0      [点我收藏+]

安装

  1. 安装go-torch
go get github.com/uber/go-torch
  1. 安装FlameGraph
cd $WORK_PATH && git clone https://github.com/brendangregg/FlameGraph.git
export PATH=$PATH:$WORK_PATH/FlameGraph
  1. 安装graphviz
yum install graphviz
  1. 使用pprof
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. 基本使用

ab -n 19999 -c 20 http://xxxxxxxxxxxx
-n 总数
-c 同时并发请求数

pprof使用

  1. 监听
go tool pprof http://localhost:port/debug/pprof/profile
  1. 操作
    进入30秒的profile收集时间,在这段时间内请求服务,尽量让cpu占用性能产生数据

  2. pprof命令

top
在默认情况下,top命令会输出以本地取样计数为顺序的列表。我们可以把这个列表叫做本地取样计数排名列表。
web
与gv命令类似,web命令也会用图形化的方式来显示概要文件。但不同的是,web命令是在一个Web浏览器中显示它。

火焰图工具使用

  1. 监听
//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. 操作
针对测试服务端,进行操作,上述步骤默认监听30s,即30s后可以生成相关图像

参考

  1. Golang FlameGraph

Pprof

原文:https://www.cnblogs.com/weiweng/p/12497274.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!