t-io 3.1.1 发布,顺便孵化一款 Java 版 http 暴力测试工具 - 开源中国社区
t-io 3.1.1 发布,顺便孵化一款 Java 版 http 暴力测试工具
talent-tan 2018年07月11日

t-io 3.1.1 发布,顺便孵化一款 Java 版 http 暴力测试工具

talent-tan talent-tan 发布于2018年07月11日 收藏 20

在您的既有IT基础设施上按需构建人工智能更高效>>>  

概述

t-io最近发的版本有点多(没发新闻),一个原因就是因为tio在TFB上的测试结果,不是特别突出,可参考:https://my.oschina.net/talenttan/blog/1841863,所以小修小改比较多,小改过后看到TFB测试结果变化不大,又开始review并优化代码,但在TFB上的排名变化都不是很大,甚至会下降(譬如变换线程调度模式后,容易产生较大的性能变化)。

在windows下似乎没有好的http暴力测试工具,于是前天下午开始写了个java版的暴力测试工具,见:https://my.oschina.net/talenttan/blog/1843645,通过这个工具也找到了拖tio-mvc后腿的地方,所以不出意外周六就能看到tio-mvc在TFB上排名的变化(前提是TFB平台merge我的pr)

修改点

1、org.tio.core.GroupContext
    + useQueueDecode: 是否使用队列解码
    + useQueueSend:   是否使用队列发送
    + statOn:  流量统计开关
    
2、增加业务id绑定
    + org.tio.core.Tio.bindBsId(ChannelContext, String)
    + org.tio.core.Tio.unbindBsId(ChannelContext)
    + org.tio.core.Tio.sendToBsId(GroupContext, String, Packet)
    + org.tio.core.Tio.bSendToBsId(GroupContext, String, Packet)
    
3、tio-mvc的invoke改用reflectasm实现

4、增加tio-http-client工程,这个主要用于http暴力测试,不作为http client的api使用

5、其它各种小修改

最新pom

<dependency>
    <groupid>org.t-io</groupid>
    <artifactid>tio-core</artifactid>
    <version>3.1.1.v20180712-RELEASE</version>
</dependency>
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:t-io 3.1.1 发布,顺便孵化一款 Java 版 http 暴力测试工具
分享
评论(27)
精彩评论
4
校长厉害, 带领 t-io 在优化的道路上飞奔 ...
3

引用来自“dwingo”的评论

为什么非要限制在windows上呢, TFB应该是用Linux测的吧, 系统底层的差距也是很大的.
另外windows上也有知名的ab工具来测http, 不知道重造轮子有什么更好的地方.
ab也就只能拿来玩玩demo,pipeline和http1.1都没支持(不支持指定http版本,默认是1.0),要是ab能把tio的权限压出来,我也犯不着自己动手了。另外一个wrk支持度很好,但是没有windows版本
2

引用来自“cwledit”的评论

这个bSendToxxx 系列的方法能说下吗?
bSendXxx是阻塞发送,框架会阻塞直到对方收到消息才继续往下执行代码。其实有说的:https://gitee.com/tywo45/t-io
1
强势围观
最新评论
0
@talet-tan 耀武兄,你这是扬威的节奏。
0
666
0

引用来自“蒲池幸子”的评论

UDP支持了么?

引用来自“talent-tan”的评论

早支持了,没怎么宣传:https://gitee.com/tywo45/tio-udp-showcase

引用来自“蒲池幸子”的评论

嗯,看到了,这个UDP的性能怎么样?我现在每秒3万7的UDP设备在线了,用T-IO能单台支撑到5万么?
我简单测了一下tio至少每秒可以发6万左右的udp消息,这个测试数据当然不是tio的极限,没怎么测udp的性能。不过考虑到udp比较简单,出问题的概率比tcp要少很多,你还是可以放心使用,有问题可以反馈给我
0

引用来自“蒲池幸子”的评论

UDP支持了么?

引用来自“talent-tan”的评论

早支持了,没怎么宣传:https://gitee.com/tywo45/tio-udp-showcase
嗯,看到了,这个UDP的性能怎么样?我现在每秒3万7的UDP设备在线了,用T-IO能单台支撑到5万么?
0

引用来自“蒲池幸子”的评论

UDP支持了么?
早支持了,没怎么宣传:https://gitee.com/tywo45/tio-udp-showcase
0
UDP支持了么?
0

引用来自“文敦赋”的评论

通过这个工具也找到了拖tio-mvc后腿的地方!我觉得优化过程可以谈谈,宝贵经验!
嗯,后面看情况,不过在已经有的测试回合中,tio-mvc在TFB上的表现还过得去的,性能上完全没有任何问题!周日看一下tio-mvc最新的测试结果,不出意外,性能数据应该会有比较大的提升。
前一轮测试回合:https://my.oschina.net/talenttan/blog/1841863
0
通过这个工具也找到了拖tio-mvc后腿的地方!我觉得优化过程可以谈谈,宝贵经验!
0

引用来自“dwingo”的评论

为什么非要限制在windows上呢, TFB应该是用Linux测的吧, 系统底层的差距也是很大的.
另外windows上也有知名的ab工具来测http, 不知道重造轮子有什么更好的地方.

引用来自“talent-tan”的评论

ab也就只能拿来玩玩demo,pipeline和http1.1都没支持(不支持指定http版本,默认是1.0),要是ab能把tio的权限压出来,我也犯不着自己动手了。另外一个wrk支持度很好,但是没有windows版本

引用来自“乌龟壳”的评论

ab -k 在 windows 下性能也够用来做长连接的 benchmark 了,ab 如果不用 keepalive 在 windows 下确实很慢。
另外,http 1.0 是支持 keep-alive 的,只不过不支持 chunk,实现 http server 的时候要注意下。
ab -k是可以保持长连接,但是协议仍然是1.0的,有的服务器已经不支持1.0了。另外你看一下tio-http在TFB上的性能表现:https://my.oschina.net/talenttan/blog/1841863, 再看看tio提供的这个暴力测试工具的表现:https://my.oschina.net/talenttan/blog/1843645,就会觉得ab只能当作入门级甚至demo级压测工具。
0

引用来自“dwingo”的评论

为什么非要限制在windows上呢, TFB应该是用Linux测的吧, 系统底层的差距也是很大的.
另外windows上也有知名的ab工具来测http, 不知道重造轮子有什么更好的地方.

引用来自“talent-tan”的评论

ab也就只能拿来玩玩demo,pipeline和http1.1都没支持(不支持指定http版本,默认是1.0),要是ab能把tio的权限压出来,我也犯不着自己动手了。另外一个wrk支持度很好,但是没有windows版本
ab -k 在 windows 下性能也够用来做长连接的 benchmark 了,ab 如果不用 keepalive 在 windows 下确实很慢。
另外,http 1.0 是支持 keep-alive 的,只不过不支持 chunk,实现 http server 的时候要注意下。
0
0
有个工具叫LOIC(Low Orbit Ion Cannon),也挺暴力的,做压测的时候,有时候比JMeter来的直接
3

引用来自“dwingo”的评论

为什么非要限制在windows上呢, TFB应该是用Linux测的吧, 系统底层的差距也是很大的.
另外windows上也有知名的ab工具来测http, 不知道重造轮子有什么更好的地方.
ab也就只能拿来玩玩demo,pipeline和http1.1都没支持(不支持指定http版本,默认是1.0),要是ab能把tio的权限压出来,我也犯不着自己动手了。另外一个wrk支持度很好,但是没有windows版本
0
为什么非要限制在windows上呢, TFB应该是用Linux测的吧, 系统底层的差距也是很大的.
另外windows上也有知名的ab工具来测http, 不知道重造轮子有什么更好的地方.
0
高手!佩服!
0

引用来自“很拽De土豆”的评论

前段时间在本机搞了好久简单测试了一下tio websocket的连接数,服务端和客户端都在一台机器连接数测试到了5w。期间还添加谭总的QQ提问,感谢谭总能抽空回答。由于是自己简单测试也没有提交贴子出来交流,希望后面用上了,可以整理一下多多交流。:pray:
对不上号了,等你的博客,记得艾特我,哈哈。
0
前段时间在本机搞了好久简单测试了一下tio websocket的连接数,服务端和客户端都在一台机器连接数测试到了5w。期间还添加谭总的QQ提问,感谢谭总能抽空回答。由于是自己简单测试也没有提交贴子出来交流,希望后面用上了,可以整理一下多多交流。:pray:
0
666666
2

引用来自“cwledit”的评论

这个bSendToxxx 系列的方法能说下吗?
bSendXxx是阻塞发送,框架会阻塞直到对方收到消息才继续往下执行代码。其实有说的:https://gitee.com/tywo45/t-io
0
这么社会!
顶部