1. 单测 + 压测

压测
go test -bench=. -benchmem 
单元测试
go test -v .

2. pprof + 火焰图(查看cpu占用,内存占用)

嵌入代码
import (
rawhttp "net/http"
_ "net/http/pprof"
) func init(){
if conf.GetConfig().GetEnv() != "prod" {
go func() {
rawhttp.ListenAndServe(":6060", nil)
}()
}
}

ps : pprof会启动6060端口收集各项数据

火焰图工具
## 安装flamegraph
git clone https://github.com/brendangregg/FlameGraph.git
cd FlameGraph
cp flamegraph.pl /usr/local/bin
## 安装go-torch
go get github.com/uber/go-torch
## 使用,默认停留30秒收据
## 此期间内可使用hey工具对http服务进行压测
go-torch -u http://127.0.0.1:6060
## 生成torch.tvg图片后拉到浏览器里即可 在输入命令:
go-torch -u http://127.0.0.1:6060,想生成火焰图,但是老是抛出错误:ERROR: No stack counts found,could not generate flame graph: exit status 2。弄了很久,以为是 perf 没装,但是装了也不行,然后发现必须在访问程序时,火焰图才能生成。
因此通过命令去仿造批量请求:
wrk -c  -t  -d 3m http://127.0.0.1:8080/data
最后就可以生成了
压测工具
https://github.com/rakyll/hey
wrk,性能测试工具,https://github.com/wg/wrk.git
go1.10+自带web ui

http://ju.outofmemory.cn/entry/344575

benchmark导出profile.out,命令: go test -bench=. -benchmem -cpuprofle=profile.out

或访问http://127.0.0.1:6060/debug/pprof/profile 间隔期内,对服务进行压测,最后可导出profile文件

go tool pprof -http=:8080 profile.out

Go 压测的更多相关文章

  1. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  2. Http压测工具wrk使用指南

    用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持 ...

  3. 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率

    一直想做这个测试,原因很简单,很多人一直比较怀疑Azure的虚拟机性能,说相同的配置凭啥比阿里的虚拟机贵那么多,其实,我自己以前也怀疑过,但是接触Azure的几个月,确实发现Azure的虚拟机性能真的 ...

  4. MySQL mysqlslap压测

    200 ? "200px" : this.width)!important;} --> 介绍 mysqlslap是mysql自带的一个性能压测工具:mysqlslap用于和其 ...

  5. 真刀真枪压测:基于TCPCopy的仿真压测方案

    郑昀 基于刘勤红和石雍志的实践报告 创建于2015/8/13 最后更新于2015/8/19 关键词:压测.TCPCopy.仿真测试.实时拷贝流量 本文档适用人员:技术人员 提纲: 为什么要做仿真测试 ...

  6. Netty NIO 框架性能压测-短链接-对比Tomcat

    压测方案 准备多个文件大小分别为 1k 10k 100k 300k 使用ab分别按 [50,2000](按50逐渐叠加)压测服务,每次请求10W次 硬件信息:CPU:Intel(R) Xeon(R) ...

  7. 图解jmeter压测http接口

    此次压力测试是以一个http json的后台接口为例. 1. 创建相应的部件 2. 设置相应的参数 线程组主要用于设置一共要测试的线程数量(上图1000),每秒起的线程数(上图10),几秒内启动完单循 ...

  8. Python Locust对指定网站“一键压测”

    [本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ...

  9. JMeter压测Rest请求

    下载及安装 官网下载JMeter3.0: 找到bin目录下的jmeter.bat启动: 压测Rest请求 1.添加线程组 路径:右键“测试计划”->添加“Threads(Users)”-> ...

  10. 压测如何观测jvm,就是使用jmx来实现jvm监控

    jps.jstack.jmap.jhat.jstat.hprof 基于jmx可以开发web版本,方便压测的时候观测jvm以及线程的信息 ================================ ...

随机推荐

  1. POJ1066线段交点

    POJ1066 题意:给出一个100*100的正方形区域,通过若干连接区域边界的线段将正方形区域分割为多个不规则多边形小区域,然后给出宝藏位置,要求从区域外部开辟到宝藏所在位置的一条路径,使得开辟路径 ...

  2. opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)

    1:包含在cxcore/include/cxtypes.h头文件中. 2:CvPoint系列   -----(x,y) CvPoint:表示图像中的点 CvPoint2D32f:二维空间中的点 CvP ...

  3. openfire消息发送

    找了一些demo,做了一些示例,演示了基于xmpp协议的openfire的客户端之间消息的发送. 代码需要两个包,smack.jar ,smackx.jar. 第一个代码,只是点对点发送消息的,不涉及 ...

  4. VisualStudio神级插件Resharper的基本配置和使用技巧大全+Resharper性能优化

    所谓工欲善其事,必先利其器.尽管visual studio本身已经非常强大,但优秀的插件仍然可以帮开发者大大提高效率. ReSharper是一款由jetbrain开发的针对C#,VB.NET,ASP. ...

  5. 初探Angular_03 组件中模板数据绑定

    这里将介绍三种情况的数据绑定 需要TypeScript的基本知识,如TS数据类型 一.模板属性绑定数据 1.模板属性其实HTML的属性,如class,style,title等 2.先在header.c ...

  6. .net core2.2 跨域

    Startup.cs 类 ConfigureServices中 //允许一个或多个具体来源: services.AddCors(options => { // Policy 名稱 CorsPol ...

  7. CSS3 & 页面布局

    相关链接 视频链接: CSS3 & 页面布局 CSS3与页面布局学习总结(一) CSS3与页面布局学习总结(二) CSS3与页面布局学习总结(三) CSS3与页面布局学习总结(四) CSS3与 ...

  8. go get golang.org/x/net 安装失败的解决方法!

    GO语言在github.com上建立了自己的项目,对应的包如果不能下载,那么可以到这里去下载,比如:"go get golang.org/x/net"不能下载这个包,那么我们可以访 ...

  9. MySQL(动态执行SQL)

    day61 防sql注入 delimiter \\ CREATE PROCEDURE p4 ( ), in arg int ) BEGIN set @xo = arg; PREPARE xxx FRO ...

  10. 三,PHP缓存机制实现页面静态化

    页面静态化思路: 因为新闻这种信息对实时性要求不高,并且比较稳定,所以可以这样做:当地一个用户访问某条新闻后,我们使用ob缓存机制,将内容缓存到html页面.当下一次访问时候,直接访问html页面.这 ...