范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

鼎力推荐github6。7kstar开源IM项目OpenIM性能及消息可靠性测试

  本报告主要分为两部分,性能测试和消息可靠性测试。前者主要关注吞吐,延时,同时在线用户等,即通常所说的性能指标。后者主要模拟真实环境(比如离线,在线,弱网)消息通道的可靠性。
  先说结论,对于容量和性能: 性能及容量总结
  服务器资源: 8核16G内存, 6个机械磁盘,每个磁盘100G, 用于mongo分片,10MB带宽。
  容量:用户容量10万以上,消息条数10亿条。
  性能评估:同时在线用户10万,每秒钟发送消息900条,消息延时1秒(从发送者发出消息到接收到消息) 可靠性总结
  启动sdk,模拟50个用户在线、离线情况,消息可靠性100%。
  发送10万消息,有3条失败,其他消息都能被对方精确收到,并成功落地本地db。对于失败的3条消息,接收方确实没有收到,系统消息是一致的。 项目介绍
  OpenIM是由前微信技术专家打造的开源的即时通讯组件。Open-IM包括IM服务端和客户端SDK,是一套整体的解决方案,代码开源,一切可控,
  OpenIM可以实现全平台支持,目前支持Android,iOS,Flutter,Uni-app,react-native, JSSDK等。
  OpenIM可以应用在企业内部办公,dating交友,在线客服等项目,也可以用于元宇宙。
  github地址:https://github.com/OpenIMSDK/Open-IM-Server
  开发者中心: https://doc.rentsoft.cn/#/
  性能测试
  在单机的情况下,模拟线上用户发消息流程,在线用户量和消息量达到一定量级后,系统CPU、内存、磁盘占用、以及消息时延情况。以确定用户群体达到一定量级后,对服务器资源的预先评估。本次测试并不极限测试,一是因为生产环境本来都会有用户量和消息量的限制,二是因为OpenIM的消息模型,消息发送首先都会通过websocket入库kafka,理论上发送消息的写入性能是两者的组合,而消息发送的真正瓶颈实际在mongodb的随机读写。 测试过程
  服务器资源: 腾讯云主机(香港)1台:linux Ubuntu 18.04.4系统,4核8G内存,单块机械硬盘。5Mb带宽。
  测试条件:去掉消息入库mysql(因mysql仅用于管理后台,不影响线上用户服务)。日志级别调整为4或更低。kafka设置2个分区,msg_transfer 2个。
  测试流程:1个客户端(成都,window pc,4核16G内存)启动1万个协程,模拟用户与服务器建立websocket长连接,间隔时间为随机50-100秒之间。两个客户端共模拟2万用户同时在线,发送消息,观察消息流转各个模块的处理能力,共计2500万条消息,观察系统内存、磁盘资源使用情况。 测试结论和分析
  关注指标
  测试结果
  同时在线人数
  20000个
  网关接收消息速度
  150条/s(因为瓶颈不在此,故意控制发送速度,以确保kafka能被快速消费入mongodb)
  mongodb处理写入
  300条/s (收件箱模型,导致消息一拆为二)
  CPU使用率
  约50%
  内存使用率
  约4G(mongo内存限制2G,由于每个文档存储5k条消息,实际实际索引量很小。 redis只存了用户seq映射关系,基本不占内存)
  发送消息响应时长
  平均70毫秒
  发送过程时延
  平约1秒
  磁盘空间
  mongo中5000万条消息占用10G磁盘,由于一拆为二的缘故,mongo的50000万条消息,实际为2500万条消息。
  mongodb数据情况
  redis数据情况
  磁盘状态
  资源占用分析
  (1)redis内存消耗极小,一个用户一条数据(包括token和seq),和用户量成正比,3万用户占用几十M内存。
  (2)mongodb如果去掉cache,内存消耗极小,每个document存放5000条消息,与用户量和消息量成正比,3万用户,2500万消息,索引才950K(更好的方式查看mongo消耗cache之外的内存)
  (3)2500万消息,磁盘空间占用10G。
  (4)每秒钟150条消息,cpu整体占用50%,即2核。
  性能分析
  (1)性能瓶颈在mongodb写入操作,1条消息,需要按照发送者和接收者拆分2次,mongodb写入2次,未来可以针对mongodb读写进一步优化。
  (2)对于cpu消耗较大的模块,未来做一次整体优化。
  (3)性能很平稳,不会随着数据量增加而降低。机械磁盘iops 达到200基本达到了设备的极限 单机性能预估
  服务器资源: 8核16G内存, 6个磁盘,每个磁盘100G, 用于mongo分片,10MB带宽。
  性能评估:同时在线用户10万,每秒钟发送消息900条,消息延时1秒(从发送者发出消息到接收到消息)
  模块
  性能情况
  说明
  msg_gateway
  部署多个
  ,同时在线5万*2=10万
  mongodb
  6分片,每个磁盘对应一个分片
  1800条/每秒消息入库
  CPU使用率
  约100%
  需要优化模块 减少cpu消耗
  内存使用率
  小于8G(mongo内存限制2G)
  如果内存富余可以增加mongodb的cache大小
  发送消息响应时长
  平均70ms
  发送过程时延
  平约1s
  从发送者到接收者
  10亿条消息,磁盘空间
  占用40*100G磁盘,每个磁盘大概占用70G空间
  对于群聊属于扩散写,磁盘消耗较大。整体要考虑磁盘空间富余 未来工作优化
  (1)mongo集群部署,支持上亿用户同时在线,千亿级消息;
  (2)简化集群部署;
  (3)数据备份、恢复工具;
  以上主要对服务端性能做了一个大致测试,但一套完整的IM解决方案,不仅仅是服务端的工作。实际上,客户端重要性毋庸置疑,具体包括如何利用seq和服务端同步消息,如果保证消息收发的时序,如何回调客户端(会话改变、新增,新消息),消息落地本地db,seq同步,消息推拉如何结合以确保消息收发可靠性。 消息可达率(可靠性)测试
  相比于性能测试,实际上,消息的可达性(可靠性)更为重要。所以,我们在做性能测试的同时,也要对消息的可达性(可靠性)进行测试,如果不能保证消息收发的正确性,再高的性能也是徒劳。本文重点总结关于OpenIM对于消息可达性测试的方案、过程以及结果。先说结论,OpenIM消息可达率100%,大家可以放心使用在生产环境中。seq对齐和同步机制,保证了OpenIM的消息可达性是业界领先的。 消息可达性(可靠性)的定义
  IM消息系统的可靠性,通常就是指消息投递的可靠性,即我们经常听到的"消息必达",通常用消息的不丢失和不重复两个技术指标来表示。确保消息被发送后,能被接收者收到。由于网络环境的复杂性,以及用户在线的不确定性,消息的可靠性(不丢失、不重复)无疑是IM系统的核心指标,也是IM系统实现中的难点之一。总体来说,IM系统的消息"可靠性",通常就是指聊天消息投递的可靠性(准确的说,这个"消息"是广义的,因为还存用户看不见的各种指令和通知,包括但不限于进群退群通知、好友添加通知等,为了方便描述,统称"消息")。
  从消息发送者和接收者用户行为来讲,消息"可靠性"应该分为以下几种情况:
  (1)发送失败,对于这种情况IM系统必须要感知到,明确反馈发送方。如果此消息没有发送成功,发送方可以选择重试或者稍后再试。
  (2)发送成功,如果接收方处在"在线"状态,应该立即收到此消息。如果接收方处在"离线"状态不能收到消息,一旦上线则立刻收到消息。
  (3)消息不能重复,用数学术语表示:"有且仅有这条消息",如果重复了,可能表达的意思就变了。 总之,一个商用 IM系统,必须包含消息"可靠性"逻辑,才能谈基本可用,这是IM系统最基本也是最核心的逻辑。 模拟场景&测试方案
  互联网真实场景复杂,但客户端大体可以分为两种情况:(1)发送消息时,接收方在线,能收到消息;(2)发送消息时接收方不在线,登录后能收到离线消息。我们用测试程序模拟互联网客户端各种场景,按照登录、发送消息、接收消息的情况,把测试客户端分为以下2种类型:
  (1)启动测试时离线,随机sleep 0-60 秒后登录,发送消息,且接收消息
  (2)启动测试时离线,随机sleep 0-60 秒后登录,不发送消息,只接收消息     test.ReliabilityTest(oneClientSendMsgNum, intervalSleepMs, imIP, randSleepMaxSecond, testClientNum)
  在实际测试中共计50个客户端,约25个(50%概率)客户端不发送只接收消息,约25个(50%概率)客户端发送且接收消息 。
  发送模式:每个客户端随机选择其他客户端作为消息接收者;
  测试预期: 每一条发送成功的MsgID,都能在接收的消息列表中找到,同样,每一条接收到的MsgID,都能在发送成功的消息列表中找到。
  具体做法:(1)消息发送成功后,通过OnSuccess回调,记录MsgID; 收到新消息后回调OnRecvNewMessage,记录MsgID;(2)周期性对比两个消息列表,确认是否完全一致; 测试结果
  发送消息客户端
  接收消息客户端
  预设发送消息总量
  发送成功条数
  发送失败条数
  接收消息条数
  25个
  50个
  100000条
  99997
  3
  99997
  发送数据100000条,其中失败3条,9999997条成功,接收方成功接收9999997条消息(接收方成功接收到消息,写入本地db,并能触发消息回调)   每一条发送成功的消息,对方都能准确接收到,无论接收方在消息发送时的登录状态是在线还是离线。   每一条发送失败的消息,对方都不会收到。 测试程序main/main.go intervalSleepMs := 1 randSleepMaxSecond := 30 imIP := "127.0.0.1" //OpenIM ip oneClientSendMsgNum := 4000 //每个客户端发送的消息条数 testClientNum := 50 //同时启动压测客户端数量 func main() { reliabilityTest() }   注意事项:   (1)控制压力,因为sdk需要写本地db,客户端会成为压力瓶颈。   (2)压测客户端日志会影响测试性能。 成本对比   此表格是某IM云平台的价格,如果按照10万月活,存储三年消息来算,大概每年需要支付15万。而采用OpenIM只需要采购云主机,每年成本约0.8万。

华为公开智能眼罩专利,可监测癫痫天眼查App显示,5月10日,华为技术有限公司智能眼罩终端设备健康管理方法与系统专利公开。专利摘要显示,该智能眼罩上设置有信号采集单元处理单元和EEG电极,信号采集单元可检测EEGRedmiNote11TPro配备LCD旗舰直屏,硬件级防蓝光RedmiNote11TPro将配备旗舰级LCD直屏,首次获得DisplayMateA认证,支持144Hz高刷新率。除此之外,将搭载天玑81005G处理器,可以满足日常使用以及游戏共跌价2500元,12GB256GB全能四摄,微云台旗舰跌入中端市场现在的智能手机市场竞争有多激烈,相信大家都还是有目共睹的,很多厂商虽然嘴上喊着要冲击高端,但自家的高端机推出之后,更多的精力都是放到了中端性价比市场,甚至很多时候自家的中端机的某些禁用华为中兴的加拿大现状,带你看看真实的渥太华作为世界上面积第二大的国家,加拿大的人口却只有三千多万,拥有世界上最长的海岸线和世界第五大专属经济区。同时,它还是北美洲最大的国家,面积占据北美大陆四成以上。加拿大是一个典型的移民钱包互联新牌局蚂蚁出海策略思变本报记者李晖北京报道出海近十年,蚂蚁集团的国际化战略迎来再迭代。今年以来,蚂蚁集团在东南亚地区动作频频。3月底,蚂蚁集团设立了东南亚区域总经理这一全新岗位。而仅在4月第一周,其推出比亚迪2021年报和2022Q1业绩点评公司主要经营包括新能源汽车传统燃油汽车在内的汽车业务,手机部件及组装业务,二次充电电池及光伏业务,并积极利用自身技术优势拓展城市轨道交通及其他业务。2022Q1业绩实现营业收入66iPhoneSE3价格再次松动,128GB售价更亲民了,网友却开始纠结了iPhoneSE3发布之后,虽然遭遇了不少网友的吐槽,但作为科技圈知名度极高的品牌苹果旗下的产品,还是受到了不少消费者的关注。尽管它的某些方面缺乏诚意,但毕竟是5G手机,且还支持5雄帝科技收关注函需说明数字货币业务与公司当前主营业务的关系北京商报讯(记者刘凤茹)近期股价接连大涨的雄帝科技(300546)于2月9日晚间收到深交所的关注函。关注函中,深交所要求雄帝科技对数字货币业务与公司当前主营业务的关系等问题进行说明阿根廷总统在抵达北京出席冬奥会开幕式后,参观华为的展览中心ArgentinepresintapplaudsHuaweisachievements,technologies阿根廷总统称赞华为的成就和技术ArgentinasPresintAl氢风徐来冬奥会大规模示范应用氢能源汽车证券时报记者韩忠楠日前,北京2022年冬奥会正式拉开帷幕,从比赛场馆的可再生能源应用,到开幕式时变小的主火炬,北京冬奥会用一个个细节展现了对低碳和环保的重视。据了解,绿色冬奥是本届Centos7Qt5。7。0安装1首先打开centos的Terminal终端,输入su进入root用户,如果不是root用户可能在安装的时候会出问题。2下载qtopensourcelinuxx645。7。0。ru
一夜大跌12!特斯拉2天1。3万亿市值灰飞烟灭!赶在马斯克之前,弟弟抢先套现7亿,发生了什么?美股周二,电动汽车巨头特斯拉延续周一下跌趋势,再度暴跌12,创下3月以来最大跌幅,股价日低下逼1000美元整数心理关口,创两周新低,一夜间特斯拉市值蒸发约1400亿美元(约合人民币建议苹果跟进!华为推出单只耳机五折购买优惠最高只需79元11月10日,有网友爆料,华为推出耳机丢失无忧服务,用户可以享受5折价格购买单只耳机的优惠,期限为两年。值得一提的是,这项优惠只能在线下零售店服务店里选购FreeBuds4iFre3年前把饿了么卖给马云,带着上亿现金去打工的张旭豪,后悔了吗互联网时代,一夜暴富的神话,屡见不鲜。比如,今天我们讲到的这位因一次饥饿点燃了创业梦,转手又把自己的孩子卖给他人曾在大街小巷送外卖,却一次性地从马云手里转走665亿。他,就是外卖平iPhone13正式降价,128GB售价亲民,网友吐槽买早了说到打造爆款手机这个能力,苹果手机绝对可以称作是第一。在每一年,苹果都能打造一到两款爆款智能手机,拿今年举例,爆款产品就是iPhone13。据笔者了解,iPhone13在京东月销已贵州到底有什么?为啥全球科技巨头,抢着把服务器放这里?图为服务器机房提到贵州,你能想到什么?是偏远还是落后?事实上,这都只是过去的事了,现在,它不仅GDP增长速度快,更是吸引了腾讯,华为等大型企业前来投资,这些年来,它们纷纷将大数据中上千万骑手有福了!外卖平台取消超时和差评考核随着冬季来临,全国各地迅速降温,北方不少地区更是出现暴雪天气,很多人便选择待在温暖舒适的室内,这使得饺子和火锅等外卖订单出现了暴涨的情况。与此同时,恶劣天气也造成路况复杂,骑手们的另类的骨传导耳机,上班摸鱼的神器对于很多球迷来讲,工作日撞上比赛绝对是最为痛心的,而当面对这种情况时,有很多人甚至冒着被老板抓包的风险依旧偷偷看比赛,但是一些高段位的球迷却早就适应了这种状态,在老板开会是依旧是云小米有品上新硬核户外电源一站式解决室内外应急供电在户外露营娱乐party中,在户外自驾游出行中,在户外拍摄中你的用电设备是不是很不给力,比如储能不足,功能不全,无法满足多种设备充电需求?别着急!泰视朗Teslong推出的便携式移美国野火烧不尽,英伟达放着我来作者袁漪琳出品虎嗅科技组题图NVIDIA这两天,无人不谈英伟达。不过值得兴奋的,不只有元宇宙黄仁勋的小人和自动驾驶。英伟达和美国航空制造巨头洛克希德马丁在周二的GTC会议上宣布,他支付宝的花呗经常提前还款,时间久了会怎么样?花呗对于我们生活有利有弊,一方面刺激经济发展和提高人们的购物欲望,促进经济快速发展另一方面,花呗消费使我们提前消费,没发工资就等着工资还款,存款没剩多少,可谓是月光族。花呗消费一般回归本质,不失特色,杜伽K310白光机械键盘入手体验魔力鸭酷冷FilcoLeopold阿米洛凯酷,如果这些品牌的名字你都听过,那么相信你肯定也像笔者一样入手过不少机械键盘。曾经高端机械键盘都是外国品牌的天下,在机械键盘吧流传着大F退