加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang实现的高性能HTTP负载工具

发布时间:2020-12-16 18:58:28 所属栏目:大数据 来源:网络整理
导读:Sniper Sniper是一个功能强大、高性能的HTTP负载工具,采用Golang编写。利用协程并发优势,实现海量并发、超低内存占用、丰富图表展示。是测试、分析、优化服务端性能的绝佳助手! ##体验 提供以下可执行文件,可直接运行 Darwin 64 bit Darwin 32 bit Linux

Sniper

Sniper是一个功能强大、高性能的HTTP负载工具,采用Golang编写。利用协程并发优势,实现海量并发、超低内存占用、丰富图表展示。是测试、分析、优化服务端性能的绝佳助手!

##体验 提供以下可执行文件,可直接运行

  • Darwin 64 bit
  • Darwin 32 bit
  • Linux 64 bit
  • Linux 32 bit
  • FreeBSD 64 bit
  • FreeBSD 32 bit

##功能 以实用为原则,实现以下功能

  • GET / POST
  • keep-alive模式
  • https
  • 图表展示结果
  • 测试多个目标
  • 支持大文件负载
  • 跨平台,支持Linux,FreeBSD,Darwin

###对比同类工具

##性能

  • 内存占用低于Apache Benchmark(ab)等主流负载工具
  • 执行速度接近ab,高并发时超过ab
  • 支持10k以上并发
  • 支持超大文件测试

测试的详细情况,与各大负载测试工具的性能对比在此

##图表展示

  • 统计分析每个请求
  • 输出建立连接时间
  • 输出服务端响应时间
  • 输出总时间

基于dygraphs与html5,详细展现服务端性能情况

从测试结果中等距采样约1000样本,详细展现连接建立,链路传输和服务端执行情况

下图展示了总时间和连接建立时间的对比,Golang是怎样得到连接建立的时间呢?

原来项目基于net库实现了HTTP协议栈,重构而不是官方net/http库才拿到详细的信息,

提升了性能。

##使用说明 ###1. 安装Golang

请参考astaxie的开源Golang书籍《Go Web 编程》一书,Go安装一节。

###2. 安装Sniper

$ go get github.com/lubia/sniper
$ go install github.com/lubia/sniper
$ cp src/github.com/lubia/sniper/.sniperc ~

###3.使用手册

请参见项目主页:Sniper

##关于

作者:Lubia Yang,程序员

博客:程式設計

Licence:Apache License,Version 2.0.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读