文档章节

t-io 30W长连接并发压力测试报告

openSeLi
 openSeLi
发布于 2017/06/06 13:32
字数 361
阅读 17922
收藏 50

开始前准备。操作系统Ubuntu 12

在/etc/sysctl.conf中添加如下配置:

fs.file-max = 1048576
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_rmem = 4096 4096 16777216
net.ipv4.tcp_wmem = 4096 4096 16777216

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

在/etc/security/limits.conf中添加如下配置:

  *	soft nofile 1048576
  *	hard nofile 1048576

最后使用ulimit -an查询设置是否生效。

测试主机cpu:

内存:

客户端测试机用VMware创建12台虚拟机。机器性能就不列举了。每台虚拟机可以跑3W链接

1:t-io启动时内存占用率以及链接情况

2:5W链接时内存占用情况

3:10W

4:20W

5:30W

----------------------------------------------------------------------------

java进程统计情况

cpu

jvm

2小时后观察内存变化情况如下图

结论如下

1:0-10万连接。内存变化较大。主要是由于内存初始化时jvm会占用一部分内存。

2:10万之后。每增加10万连接 内存占用率上升300M左右。

3:随着连接数增加可以发现cpu性能对连接数影响不大。

4:新生代内存与老生代内存占用率比较合理。

5:并发30W连接在2小时内。内存变化不明显。处于合理状态

根据以上数据可以推论 —-> 以8G内存(可使用内存为7.5G左右)为例:当内存占用率达到5G左右时足以支撑100W并发连接。

© 著作权归作者所有

共有 人打赏支持
openSeLi
粉丝 16
博文 1
码字总数 361
作品 0
西安
私信 提问
加载中

评论(21)

a
answerss
http://www.cnblogs.com/romanticcrystal/p/8979869.html/IM
北极星愿
北极星愿
用java这种高级语言写这种东西,会比C,C++ 快?可以考虑更底层一些的语言
很拽De土豆
很拽De土豆
请教一下你客户端是12个虚拟机,每个3w连接。服务端是只有1个?也就是有12*3w个客户端连接到了服务端?
JavaGG
JavaGG
这只是链上 去什么都没干吗??
贤狼罗兰斯
贤狼罗兰斯
能做一些echo,json解析之类的任务么,看看框架的任务调度效果怎么样,超会不会出现超时,多少qps的时候服务器会雪崩等等
贤狼罗兰斯
贤狼罗兰斯

引用来自“91devel”的评论

请问博主,你的这个百万连接没有频繁业务交互的吗,这个延时问题有多大有测试结果没?
同问。只是维护链接说明不了太多
Henson哥
Henson哥
请问博主,你的这个百万连接没有频繁业务交互的吗,这个延时问题有多大有测试结果没?
m
myumen
连接上去没收发消息吗?
openSeLi
openSeLi

引用来自“qycms_cn”的评论

"客户端测试机用VMware创建12台虚拟机。机器性能就不列举了。每台虚拟机可以跑3W链接"

这个是通过什么命令,什么软件向服务器发动链接?
自己写客户端。协议是握手就行。去掉服务端的心跳检测。
talent-tan
talent-tan

引用来自“彪付_3个字符”的评论

引用来自“彪付_3个字符”的评论

有没有对指定通道的压力测试?我们自己测试发现在3秒时间内,向指定通道传输数据7K至1W条,发现有时 decode数据会多获取后面的数据,而有时候decode就阻塞了;之前 项目上线忽略了单一通道处理问题,现在在猛改中~~

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

“decode数据会多获取后面的数据”,,那是你解码算法没有截包,然后后面的就乱了。。。
😂好吧,网络编程还真是难,大神要不告诉我,截包做法使用的关键类或方法是哪个吧?我找了好久~~~🙏

回复@彪付_3个字符 : 根据tio提供的showcase来,你根本不用关心截包的事儿,根据业务解包就可以了。
t-io 3.0.0 发布,不止是 30 万 TCP 长连接框架

t-io介绍请见:t-io官网 自问:为什么不是“百万级TCP长连接框架”而是30万了? 自答:t-io目前已经做过的测试中,最多只测到了30万个长连接(见:t-io 30W长连接并发压力测试报告),当测试...

talent-tan
2018/05/24
8.2K
142
t-io 2.0.0 发布 —— 法网天眼第一版

简单回顾并留念一下t-io 1.x版本 2017年4月1号,t-io正式上传至码云,最初让大家记住的可能是那个每秒可收发500万条聊天消息的性能数据吧,测试代码仍然完整地保留在1.6.9的分支版,欢迎随时...

talent-tan
2017/08/24
7.9K
60
【腾讯优测干货分享】从压测工具谈并发、压力、吞吐量

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/580d914e07b7fc1c26a0cf7c 前言 随着部门业务的拓展,我们有了很多性能测试的机会,但在实战中...

腾讯Bugly
2016/10/24
811
1
ApacheBench压测 那点事儿

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “我总是希望自己不要过于草率地去批评一个人” -《傲慢与偏见》 写代码,到处是指标和数据的。在写完接口,为...

泥沙砖瓦浆木匠
2016/06/30
495
0
node.js调研与服务性能测试

主要关注这几个方面 socket服务性能, socket客户端性能 http服务性能. 服务的稳定性与资源占用 开发成本 考虑到今后的应用场景, 实现了一个简单的memcache代理服务. 内部维护了一个50连接的简...

mj4738
2012/05/20
0
1

没有更多内容

加载失败,请刷新页面

加载更多

携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
33分钟前
0
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
47分钟前
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0
Scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部