33 Star 106 Fork 22

梁大帅/armyant

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

armyant(行军蚁)

mqant压力测试工具

简介

armyant是从http压力测试工具hey改装而成。

hey只支持http接口的压力测试而armant可以自定义压测协议。

目前默认实现了http,mqtt两种协议的压力测试工具

依赖模块

go get github.com/eclipse/paho.mqtt.golang

使用方法

armyant无命令行工具,目前需要通过源码编译执行

http压测

入口 http_task.go

具体实现: http_task/work.go

mqtt压测

入口 mqtt_task.go

具体实现 mqtt_task/work.go

可以通过修改work.go代码来灵活更改具体的压测内容

操作系统最多文件打开限制

默认情况下普通操作系统都会限制系统同时打开的文件数量,mac系统默认是256. 如果不放开该限制armyant发出更多并发请求。

mac打开限制方式

http://blog.csdn.net/mingtingjian/article/details/77675761

linux打开方式

自己百度

paho.mqtt.golang 内存怪兽

默认的paho.mqtt.golang客户端是内存怪兽,每一个mqtt客户端都会消耗巨大内存 gopath/src/github.com/eclipse/paho.mqtt.golang/client.go

c.messageIds = messageIds{index: [65535]Token{}} 默认会创建65535个Token

改为

c.messageIds = messageIds{index: [10]Token{}}

gopath/src/github.com/eclipse/paho.mqtt.golang/messageids.go

messageids.go 文件也需要做对应修改

mqant的压测参数

系统硬件:

MAC电脑2核,16G内存,固态硬盘

进程:

  1. mqantserver 进程一个
  2. armyant 压测进程一个

压测结果:

每一个连接每秒发出1个远程调用请求
能达到的最大并发数为:5000

内存使用:

mqantserver进程 131M aryant 进程 191m

如只连接不发远程调用请求可以轻松上万并发

本次压测结果并不严谨,所用设备是自己的MAC电脑,同时还开启了很多编译器。 压测工具与测试进程也都在同一台机器,压测瓶颈主要在CPU性能上

空文件

简介

mqant的压力测试工具,使用golang语言编写,支持http和mqtt协议的压测测试。也支持自定义压测模块。 展开 收起
README
Apache-2.0
取消

发行版

暂无发行版

贡献者 (1)

全部

近期动态

接近5年前评论了仓库
接近7年前评论了仓库
7年多前评论了仓库
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/liangdas/armyant.git
git@gitee.com:liangdas/armyant.git
liangdas
armyant
armyant
master

搜索帮助