Locust - 压测 WebSocket 连接数超 1024 报错

在使用Locust进行WebSocket压力测试时遇到并发连接数受限于1024的问题。文章分析了错误可能源于`select()`函数限制,并探讨了Linux的I/O技术。建议使用epoll或AIO来提高并发性能。同时,通过调整系统参数如`kern.maxfiles`和`kern.maxfilesperproc`,以及改变端口范围,可以优化测试机的连接数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、错误信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、错误可能性分析及处理

locust 官方解释(与locust无关)

2-1 使用 select() 支持并发连接数有限

在Linux上编写高并发TCP连接应用程序时,必须使用合适的网络I/O技术和I/O事件分派机制。

可用的I/O技术有同步I/O,非阻塞式同步I/O(也称反应式I/O),以及异步I/O。在高TCP并发的情形下,如果使用同步I/O,这会严重阻塞程序的运转,除非为每个TCP连接的I/O创建一个线程。但是,过多的线程又会因系统对线程的调度造成巨大开销。因此,在高TCP并发的情形下使用同步 I/O是不可取的,这时可以考虑使用非阻塞式同步I/O或异步I/O。**非阻塞式同步I/O的技术包括使用select(),poll(),epoll等机制。**异步I/O的技术就是使用AIO。

从I/O事件分派机制来看,使用select()是不合适的,因为它所支持的并发连接数有限(通常在1024个以内)。如果考虑性能,poll()也是不合适的,尽管它可以支持的较高的TCP并发数,但是由于其采用“轮询”机制,当并发数较高时,其运行效率相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值