文档章节

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

openSeLi
 openSeLi
发布于 2017/06/06 13:32
字数 361
阅读 18352
收藏 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)

彪付_3个字符

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

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

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

“decode数据会多获取后面的数据”,,那是你解码算法没有截包,然后后面的就乱了。。。
😂好吧,网络编程还真是难,大神要不告诉我,截包做法使用的关键类或方法是哪个吧?我找了好久~~~🙏
qycms_cn
qycms_cn
"客户端测试机用VMware创建12台虚拟机。机器性能就不列举了。每台虚拟机可以跑3W链接"

这个是通过什么命令,什么软件向服务器发动链接?
彪付_3个字符

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

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

引用来自“openSeLi”的评论

decode的时候根据你的协议做一个判断
👌
彪付_3个字符

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

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

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

“decode数据会多获取后面的数据”,,那是你解码算法没有截包,然后后面的就乱了。。。
好的,感谢提供思路
openSeLi
openSeLi

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

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

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

有没有对指定通道的压力测试?我们自己测试发现在3秒时间内,向指定通道传输数据7K至1W条,发现有时 decode数据会多获取后面的数据,而有时候decode就阻塞了;之前 项目上线忽略了单一通道处理问题,现在在猛改中~~
“decode数据会多获取后面的数据”,,那是你解码算法没有截包,然后后面的就乱了。。。
彪付_3个字符
有没有对指定通道的压力测试?我们自己测试发现在3秒时间内,向指定通道传输数据7K至1W条,发现有时 decode数据会多获取后面的数据,而有时候decode就阻塞了;之前 项目上线忽略了单一通道处理问题,现在在猛改中~~
汪纬
汪纬
6666
append
append
厉害
枫叶的思念
板凳
Firefly 性能测试报告

主要考虑点 网络IO的并发 进程间通信压力 数据读写压力 测试机配置: 操作系统 CPU 内存 CentOS release 6.3 (Final) 64位 24核Intel(R) Xeon(R) CPU E5645 @ 2.40GHz 24020 MB 测试方法: ...

大鸡蛋
2013/08/21
28
0
node.js 调研与服务性能测试

这几天对nodejs进行了一下简单的调研 主要关注这几个方面 socket服务性能, socket客户端性能 http服务性能. 服务的稳定性与资源占用 开发成本 考虑到今后的应用场景, 实现了一个简单的memca...

红薯
2010/12/21
2.7K
10
电商总结(六)系统容量预估

  前几天聊过,pv 和并发 的概念,也大概解释了 并发,带宽等指标的计算。感兴趣的朋友,可以看看我前面那篇文章:《聊一聊PV和并发》。今天再来聊一聊容量预估。   电商公司的朋友,,这...

章为忠
2016/09/07
0
0
t-io 1.7.1 发布:不仅仅是百万级 TCP 长连接框架

t-io 目标提升 不仅仅是百万级TCP长连接框架,这是t-io的第三个目标了,前两个都已实现。 目标先定下来,逐步实现,当年吹过的牛,大都含着泪完成了 要往短连接方面扩展 支持更多的传输层协议...

talent-tan
2017/07/03
6.6K
67
异数OS TCP协议栈测试(三)--长连接篇

异数OS TCP协议栈测试(三)--长连接篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数OS-织梦师(消息中间件)群: 476260389 异数OS ...

心海岛主
2018/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

配置方案:Redis持久化RDB和AOF

Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘。当下次Redis重启时,...

linuxprobe16
昨天
7
0
介绍NoSQL最受欢迎的产品

MongoDB MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,Mon...

问题终结者
昨天
11
0
2019年阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对...

java知识分子
昨天
14
0
今天的学习

1、git init:创建一个新仓库; $ cd //文件名$ git init 2、git status:检查仓库当前状态 3、git add:将文件加入暂存区 4、git commit:提交文件 5、git remote add:链接远程仓库 $ git re...

墨冥
昨天
1
0
即将到来的金三银四,这10道springboot常见面试题你需要了解下

1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能。 ...

别打我会飞
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部