zoukankan      html  css  js  c++  java
  • go-web项目性能测试,CPU, 内存泄露等

    go中提供了pprof包来做代码的性能监控,在两个地方有包:

    • net/http/pprof
    • runtime/pprof

    其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来。

    使用 net/http/pprof 做WEB服务器的性能监控

    如果你的go程序是用http包启动的web服务器,想要查看自己的web服务器的状态。这个时候就可以选择net/http/pprof。

     import _ "net/http/pprof"
    

      然后就可以在浏览器中使用http://localhost:port/debug/pprof/ 直接看到当前web服务的状态,包括CPU占用情况和内存使用情况等。

    如果是 gin框架起的web服务, 那么就用这个现成的包即可:  https://github.com/DeanThompson/ginpprof

    如果是 beego框架起的web服务, 那再配置文件中直接开启就可以了.  beego参考文档

    cpu分析

    命令行执行:

    go tool pprof http://192.168.2.60:8101/debug/pprof/profile
    

      然后进入30s的收集信息时间, 此30s内, 可以进行压力测试
    收集结束后, 可以调用web, top等工具进行查看. 

    30s的默认时间可以修改, 用 --seconds 10 参数即可, 放到pprof后面, url前面

    使用web遇到的错误:

    Failed to execute dot. Is Graphviz installed? Error: exec: "dot": executable file not found in $PATH
    

      这时需要安装 Graphviz 工具.具体怎么安装, 自行百度

    堆栈分析

    命令行执行:

    go tool pprof http://192.168.2.60:8101/debug/pprof/heap

    收集结束后, 可以调用web, top等工具进行查看. 

    
    
    

    参考:

    Go tool pprof性能监控调试工具基本使用说明

  • 相关阅读:
    PG-日常管理
    PG-高可用(pgpool-Ⅱ)
    PG-基准测试
    PG-备份恢复
    PG-并发问题
    Go-常量
    Go-变量
    Oracle-11g升级PSU补丁
    Oracle-`sqlplus`工具使用技巧
    [CF1051F] The Shortest Statement
  • 原文地址:https://www.cnblogs.com/xuange306/p/9755553.html
Copyright © 2011-2022 走看看