美文网首页
net/http/pprof

net/http/pprof

作者: 酷走天涯 | 来源:发表于2018-12-25 09:27 被阅读7次

    pprof包通过它的HTTP服务端提供pprof可视化工具期望格式的运行时剖面文件数据服务

    package main
    import (
         _ "net/http/pprof" 
        "net/http"
    )
    func main() {
        http.ListenAndServe("localhost:8082", nil)
    }
    

    只需要导入 包"net/http/pprof" 即可,其余的工作就是进行性能查看了

    方式 1 你可以在浏览器中输入 http://localhost:8082/debug/pprof/

    image.png

    方式 2 查看周期30秒的CPU性能切面

    go tool pprof http://localhost:8082/debug/pprof/profile

    image.png

    方式3 查看堆切面

    go tool pprof http://localhost:8082/debug/pprof/heap

    方式 4 查看go协程阻塞切面

    go tool pprof http://localhost:8082/debug/pprof/block


    安装可视化工具

    第一步 先升级rvm

    先替换下载镜像 https://lug.ustc.edu.cn/wiki/mirrors/help/brew.git

    以此执行下面的指令

    rvm autolibs read-only
    
    curl -L get.rvm.io | bash -s stable 
    
    source /Users/xujie/.rvm/scripts/rvm
    
    

    查看版本

    ruby -v

    第二步 安装

    brew install graphviz

    image.png

    可视化工具2

    git clone https://github.com/brendangregg/FlameGraph.git
    

    进入下载好的文件夹中

    cd /Users/xujie/FlameGraph 
    

    执行下面命令

     cp flamegraph.pl /usr/local/bin
    

    查看是否安装成功

    flamegraph.pl -h
    
    image.png

    安装 go-torch

    go get -v github.com/uber/go-torch
    
    image.png
      go-torch -u http://localhost:8082/login
    

    压力测试

    工具在这里 https://github.com/adjust/go-wrk

    git clone git://github.com/adeven/go-wrk.git 
    cd go-wrk
    go build
    
    image.png

    请确保将go build 编译后的执行文件 放在系统go/bin文件夹中,并且保证您的环境变量配置正确

    配置演示如下

    xudeMacBook-Air:~ xujie$ export GOPATH=/Users/xujie/go
    xudeMacBook-Air:~ xujie$ export GOBIN=$GOPATH/bin
    xudeMacBook-Air:~ xujie$ export PATH=$PATH:$GOBIN
    

    下面我们看一下这个压力测试工具怎么使用

    go-wrk [flags] url

     -H="User-Agent: go-wrk 0.1 bechmark\nContent-Type: text/html;": the http headers sent separated by '\n'
        -c=100: 最大连接数
        -k=true: if keep-alives are disabled
        -i=false: if TLS security checks are disabled
        -m="GET": the http request method
        -n=1000: the total number of calls processed // 启动的协程数
        -t=1: the numbers of threads used // 线程数量
        -b="" the http request body
    
    go-wrk -c=400 -t=8 -n=100000  http://localhost:8080/index.html
    
    image.png

    相关文章

      网友评论

          本文标题:net/http/pprof

          本文链接:https://www.haomeiwen.com/subject/iwiuoftx.html