默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教IM群聊发送数据带宽问题:群内1000用户在线、每秒100条消息
阅读(38163) | 评论(6 收藏 淘帖
场景:群有1000个用户在线,每秒有100条消息,将100条消息发给登录的1000个用户,相当于每秒发出去10万条消息。
单条消息大小约75byte,10W条消息总大小7M多些,服务器写出网速应该是60MBit/s服务器A 部署IM网关模块,服务器B 代表用户,用1000个端口去和服务器A建立tcp连接,

监听A的写出网速、B的写入网速,
发现B的写入网速平均是60MBit/s,但是A的写出网速却是120MBit/s,7M多的数据,接收网速是正常的,但是写出要用14兆的网速,

求助,有人这是为什么吗?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:IM群聊 求助
上一篇:求教钉钉的消息实时投票计数等功能,是如何实现的?下一篇:求教IM中聊天消息的数据结构如何设计比较合理
推荐方案
评论 6
"群有1000个用户在线,每秒有100条消息" 》你这是开玩笑的吗?正常群里,连续几秒钟一条消息都够人受不了的了。。。
引用:JackJiang 发表于 2021-08-30 21:04
"群有1000个用户在线,每秒有100条消息" 》你这是开玩笑的吗?正常群里,连续几秒钟一条消息都够人受不了的 ...

这只是模拟  关键是每秒发出去7M的数据  但是服务器的每秒写出网速需要14M/s,但是接收端的写入网速只要7M/s就够了
引用:溺水的小青蛙 发表于 2021-08-31 09:06
这只是模拟  关键是每秒发出去7M的数据  但是服务器的每秒写出网速需要14M/s,但是接收端的写入网速只要7 ...

我没明白你这样做的意义是什么,我给不了你意见啊
引用:JackJiang 发表于 2021-08-31 09:39
我没明白你这样做的意义是什么,我给不了你意见啊

我们的后台架构是 gate模块负责长连接、收发消息,logic负责逻辑处理,route负责判断用户连接在哪个gate上,做转发。
现在是要提升gate单机性能,从消息数据压缩各方面提升单机吞吐量,在优化过程中,测试给所有在线用户每秒发送总共40M的消息,后台流程的延迟不高,但是channel.writeAndFlush(data)后,通过addListener监听发送结果,发现消息都堆积在netty队列里了,查看服务器的网速,发现是网速达不到,写出不了这么快,因为40M的数据,写出速度都有800Mbit/s了,正常来说,每秒写出40M的数据,网速应该三四百MBit/s就够了吧,就是说写出的网速是实际数据大小的二倍,不知道是为什么
引用:溺水的小青蛙 发表于 2021-08-31 10:16
我们的后台架构是 gate模块负责长连接、收发消息,logic负责逻辑处理,route负责判断用户连接在哪个gate ...

网速统计的可能是上、下行速度之和
引用:JackJiang 发表于 2021-08-31 10:30
网速统计的可能是上、下行速度之和

就是用nload 监测服务器实时 incoming和outcoming,监测的时候,发现gate服务器每秒写40多M时,outcoming是七八百MBit/s,大约就是80多兆客户端incoming的二倍,我还以为我数据估算错了,但是看了客户端的总incoming,发现确实是三四百Mbit/s,之前也没研究过这块,发送n兆数据,却需要2n兆的实时写出网速
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部