Boost.ASIO 压力测试时,系统和压缩内存 占用CPU高

WayneHu WayneHu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在学习ASIO,基于他写了个服务器框架,并进行压力测试:

服务器开一个网关服Gate,两个入口服Entry,一个游戏服Game;开一个客户端,总攻发起了4000个链接,测试流程如下:

客户端连接Gate,获取Entry地址,断开Gate,链接Entry,链接成功后,每200ms发送一次本地时间到服务器;
服务器Entry收到消息,转发给Game,Game将客户端发过来的时间,原样返回给Entry,Entry再转发给客户端。客户端收到消息后,再次取本地时间,相减得到差值,用于统计

测试环境:
CPU:i5-3210M CPU @2.5GHZ
内存:8G

测试情况如图:


其中日志信息每秒输出,内容为:
[当前连接数]: 最小时间 最大时间 处理的消息数 平均时间 最新一次的时间

当4000链接时,服务器将每秒接收到2万条消息进行处理,而此时CPU主要消耗在 系统和压缩内存上,通过查看:

主要消耗在这里。

另外我在Win7上也测试过,主要CPU消耗在System进程上(NT Kernel & System),并且Win7上当System占满一个CPU(四核i5, System占25%)时,整个系统就卡死不动了,此时总CPU消耗才30%。

而我原本是想通过多进程,单线程的方式来简化开发,用集群来提高性能。但现在CPU才30%就卡死了。。。心好累

大神们有没有知道是什么原因导致这个情况的,应该怎么优化,或者有什么思路,求助求助!!
...全文
评论 2
收藏 已收藏
分享
返回顶部
WayneHu
其它技术问题 3,881 成员 9,044 内容