问答 Locust 压测 websocket,链接数过了两分钟就一直上不去,像是无法保持长链接,有什么方法能让链接数上去吗

sheris · 2022年03月02日 · 最后由 sheris 回复于 2022年05月05日 · 3097 次阅读

共收到 6 条回复 时间 点赞

你有没有保持心跳?
我用 locust 测 websocket 的。。弄过保持 20W 个长连接。。
用四台 LINUX 服务器,每台连接 5W 的。。

冻柠乐 回复

我这边 2 台最多就 5w 个链接,能分享下代码吗,亲

压力机可以通过修改配置文件调整可用的端口区间,每台机器大概 5w 左右。

配置没有问题,就是不知道是不是方法有问题,建立的链接会断

sheris 回复

你参考一下这个,修改一下 linux 的配置

====linux 负载机配置==== 重启生效,或者不重启输入命令行生效: sysctl -p
=====vi /etc/sysctl.conf=========
添加以下:

系统级别最大打开文件

fs.file-max = 100000

单用户进程最大文件打开数

fs.nr_open = 100000

是否重用, 快速回收 time-wait 状态的 tcp 连接

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

单个 tcp 连接最大缓存 byte 单位

net.core.optmem_max = 8192

可处理最多孤儿 socket 数量,超过则警告,每个孤儿 socket 占用 64KB 空间

net.ipv4.tcp_max_orphans = 10240

最多允许 time-wait 数量

net.ipv4.tcp_max_tw_buckets = 10240

从客户端发起的端口范围,默认是 32768 61000,则只能发起 2w 多连接,改为一下值,可一个 IP 可发起差不多 6.4w 连接。

net.ipv4.ip_local_port_range = 1024 65535

===========vi /etc/security/limits.conf=============
添加以下:

最大不能超过 fs.nr_open 值, 分别为单用户进程最大文件打开数,soft 指软性限制,hard 指硬性限制

  • soft nofile 100000
  • hard nofile 100000 root soft nofile 100000 root hard nofile 100000
冻柠乐 回复

😢 感谢,后来发现问题了,是代码那边有问题

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册