文档章节

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

lubia
 lubia
发布于 2013/11/19 15:00
字数 471
阅读 1887
收藏 31

Sniper

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

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

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

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

###对比同类工具 Alt text

##性能

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

Alt text

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

##图表展示

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

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

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

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

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

提升了性能。

Alt text

##使用说明 ###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.

© 著作权归作者所有

lubia

lubia

粉丝 7
博文 7
码字总数 6889
作品 1
朝阳
私信 提问
使用Sniper来测试Http站点

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

sosg
2013/12/16
0
0
HTTP负载工具--Sniper

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

lubia
2013/11/19
1K
0
基于 libevent 开发的 C++ 11 高性能网络服务器--evpp

evpp是一个基于libevent开发的现代化C++11高性能网络服务器,自带TCP/UDP/HTTP等协议的异步非阻塞式的服务器和客户端库。 特性: 现代版的C++11接口 非阻塞异步接口都是C++11的functional/bi...

zieckey
2017/03/06
6K
16
Hprose for Go 2.0.0 发布,微服务首选引擎

Hprose 2.0 for Golang 终于发布了。这是一个里程碑版本,针对开发者进行了多项改进。 Hprose 2.0 for Golang 新增了许多特征: 更快更稳定的序列化。 增加了数据推送的支持。 oneway 调用支...

andot
2016/10/31
3.6K
18
gopush-cluster 1.0 发布,实时消息推送集群

gopush-cluster 1.0 发布,此版本合并 protocol 分支 到 master。 主要更新内容如下: * 避免多次json序列化,优化客户端协议(节省流量高大5倍之多),新老协议完全兼容 * 支持web 负载均衡...

LoveSai
2014/04/29
8.4K
14

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 常用注解说明

实体类 @Entity (实体类注解) @Table(可指定表名) @Data(可缺省get/set) @Id (指定属性主键) @GeneratedValue(指定主键生成规则)

兜兜毛毛
今天
3
0
局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
今天
2
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
2
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
6
0
告诉自己的一些建议

摆脱学生心态 尽快发挥自己价值,让公司感知自己的存在,才是王道 选择比努力重要 自己附着的平台的经济体要是一个快速崛起的行业 转行趁早,年龄越大选择成本越高 趁早大量试错,学习新领域...

林怡丰
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部