1
lzj724 2022-11-22 11:02:48 +08:00
jmeter
|
2
vhysug01 2022-11-22 11:27:24 +08:00 via iPhone
用 go 写过一个,直接起 1w 个 goroutine ,简单无脑
|
3
ttvast 2022-11-22 11:40:36 +08:00 1
import socket
v=[] for i in range(10000): s=socket.socket() s.connect(("192.168.1.1",80)) v.append(s) input("Press any key to exit") server 端也不难,谁有空补上吧。 |
6
ALXG 2022-11-22 12:07:17 +08:00
一个进程能搞多少连接? 一个操作系统能容纳几个这种进程? 一个物理机能带几个操作系统? 要几个物理机才能满足你的需要?
|
7
changnet 2022-11-22 12:58:43 +08:00
像楼上的,用自己熟悉的语言随便 for 循环一下即可。比如 c 的话直接异步,都不用处理异常。1W 个连接不跑逻辑随便一颗 x86 cpu 都行,怎么会把电脑搞死,内存也用不了几 M
另外路由器没有多少个连接的概念的吧。路由器只管收数据包,然后根据包地址转发,只要收到的包数量能处理得过来路由器就没问题。不是每个 tcp 连接在路由器那里都有一个连接 |
8
cdlnls 2022-11-22 13:08:37 +08:00
我之前写了一个,有兴趣可以看看 https://github.com/ttgml/c1k
当时制作的时候目的也是为了模拟大量 TCP 连接 利用 libpacp 抓包发包实现的,配置需求很低,1c1g 的虚拟机就能模拟出上百万的 TCP 连接,只要心跳时间够长,理论上应该是可以模拟出千万级别的连接。 本身不是做开发的,写这个项目也是做着玩的,所以代码写得很 low |
9
jousca 2022-11-22 13:13:32 +08:00
楼上这个有意思。
|
10
jousca 2022-11-22 13:14:35 +08:00
想测试路由器 NAT 能力? 只有 NAT 才存在这个并发连接数问题。否则对于路由器来说只有包转发效率问题。
|
11
cdlnls 2022-11-22 13:14:35 +08:00
这里推荐百度开源的一个项目: https://github.com/baidu/dperf
原理也应该差不太多,基于 DPDK 实现的,没用用过,需要硬件支持才行 |
13
jiangzm 2022-11-22 14:55:14 +08:00
路由设备应该有支持的并发连接数吧, 而且会给出理论上能同时负载的客户端数(最大并发连接数 /终端日常连接数),不过家庭带宽本身也限制了账号的最大连接数。
|
14
jiangzm 2022-11-22 14:57:22 +08:00
|
15
jiangzm 2022-11-22 15:01:34 +08:00
忽略上面链接,是测试 DNS 的非并发连接数
|
17
WangRicky 2022-11-22 15:36:12 +08:00
gatling
|
18
9544 2022-11-22 15:44:34 +08:00
在内网服务器开几个网心云服务跑几天,实测晚上一台设备的连接数都能上 1w 。
|
19
jousca 2022-11-22 16:36:42 +08:00
13 楼说得对,其实家宽本身限制连接数的,很多运营商都这么干的。超过之后不允许新增连接数。你路由器再强也不行。
除非你用专线(政企宽带) |
21
artnowben 2022-11-23 17:33:58 +08:00
dperf 可以满足需求,他可以测试网卡、交换机、防火墙、四层负载,支持 DPDK 的网卡就可以运行,可以支持几十亿并发。
参考: 1. dperf: 100Gbps 开源压力测试工具 https://zhuanlan.zhihu.com/p/459529429 2. 项目主页: https://github.com/baidu/dperf |