gws v1.3 update: 新增并发处理请求和异步写入特性, 不增加常驻协程

2023-02-27 21:02:52 +08:00
 Nazz

Feature

实现原理(查看源码了解细节)

更新下压测数据

tcpkali -c 1000 --connect-rate 1000 -r 1000 -T 30s -f assets/1K.txt --ws 127.0.0.1:${port}/connect

761 次点击
所在节点    程序员
7 条回复
Nazz
2023-02-27 21:11:21 +08:00
@lesismal 500 msg/s 表现和 nbio 差不多,所以我改成了 1000😆
lesismal
2023-02-27 22:28:00 +08:00
正常业务单个连接 1s 发 1000 个包早就被限流 close 了,-r 1000 比-r 500 更不合理+丧心病狂😆。。。

这种非正常压测导致 tcp 缓冲区堆积时,nbio 的异步解析器需要处理更多包边界、半包缓存,可以提高 nbio 的读缓冲区 size 来提高一点,但毕竟已经是不合理测试参数,具备这种高频的场景能想到的只有 rpc 服务,但是 rpc 服务不需要太高在线量,所以用同步方案更好、不需要基于 nbio😆

建议-r 10-50 。连接数 1000 太少了,nbio 欢迎连接数 10w 起步百万更好的压测来暴击😆
lesismal
2023-02-27 22:32:51 +08:00
不过 nbio 的内存池,在一些极端场景需要用户自己定制限量方案,比如配置单个连接的最大包 size 相关的、发送缓冲 size ,一些参数默认是 0 、是没做限制的,所以连接太多了也是可能爆,需要带上脚镣跳舞
Nazz
2023-02-27 23:54:02 +08:00
@lesismal 对比的是 nbio 阻塞模式,buffer size 我是用默认的 4096.
Nazz
2023-02-27 23:54:53 +08:00
@lesismal 百万连接不是 std net 主场了
lesismal
2023-02-28 01:14:43 +08:00
-r 这个你不考虑合理性的话,那 nbio 的异步解析器肯定吃亏的,如果非要这么卷我有点想再搞个同步解析器来兼容了😆。。。但是这除了浪费我体力没什么实际意义我不想死那么早😆。。
Nazz
2023-02-28 08:01:26 +08:00
@lesismal 别这么卷了,下次我放-r 500 ,并列第一😅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/919639

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX