你好,我们用GatewayWorker做即时通讯的后端,用redis 做了一部分缓存,同时 消息存储到 mongodb ,业务接口 用 mysql 这块
我们做并发测试,发现 4核的服务器 每秒连接人数 基本在 1W左右可以的,但用前端给后端每秒发送数据 发现socket 基本上每秒只能处理 10条左右数据的下发,前端 每秒 100条数据发数据,导致全部堆积到 后端 , 基本上延时 1-2给小时才能下发完, 到现在也不清楚原因原因
问下大神,咱们 GatewayWorker 每秒理论数据下发至客户端在多少条? 想这样的每秒100条消息,服务器没有下发都堆积到哪里了?
咱们 GatewayWorker 理论每秒下发至客户端数据量在多少条? 前端毫秒发送到 socket, GatewayWorker处理不过来,全部在堆积
我们也有再看 mysql redis mongodb 都没有达到 瓶颈 并发数 ,看控制面板监控 也qps才到10个左右,就是堆积数据太严重,消息处理不过来, 想我们现在一个4核服务器,也才支持 150人数,每秒不能超过 15条数据,要不就堆积,消息延时严重
有可能 mysql redis mongodb 这块太慢了,去掉所有存储,直接转发看下效果。
压测的业务逻辑是什么?广播给1万人?
逻辑很简单, 用一个客户端向sokcet 发消息(毫秒循环发送一秒100条数据),GatewayWorker 向APP客户端下发数据,基本上发现,socket (广播给不到10人的群)下发最大也就是每秒10条的量,单一接收客户端只能每秒最多接收 10条数据
走外网?外网带宽多大?