游戏服务后端(TCP Server),一般用什么工具做压测?

168 天前
 goforwardv2

最前面放的 haproxy ,后面是各种 TCP server 。包括接入服务器,其他逻辑服务器。HTTP 有很多压测工具,ab/wrk 等。但是 TCP Server 一般都是自己写个简易客户端,在一台电脑上启动大量的客户端来压测,效果一般,并且客户端进程开多了,本身容易把测试机资源打满了。

4251 次点击
所在节点    程序员
32 条回复
goforwardv2
167 天前
@future0906 是的 之前都是写一个客户端机器人,然后脚本批量启动,但需要好几台机器才能模拟 10 万级别的并发,因为批量启动客户端也很占用资源,开的太多,效果反而不好,只能多台,一台开 1 万
goforwardv2
167 天前
@mightybruce 嗯 我看下
goforwardv2
167 天前
现在的方式都是堆机器模拟客户端压测,本来想着看有没有 ab/wrk 这种,找一个性能可以的机器就可以了,通过大家的回复来看,可能还是客户端 bot 更符合场景,有做过相关的大佬,也可以说下自己的场景
htxy1985
167 天前
我们之前是一台普通开发机器模拟 1000-2000 ,找十台机器压到 2W 同时在线,这也是当时我们的单服承载理论上限。
开测压出很多问题来,这个测试很有必要。
tool2dx
167 天前
windows 开不到那么大,也就几千 TCP 。

用 linux 单机上万连接完全没问题的,就是你需要把游戏协议移植到 linux 上运行。
goforwardv2
167 天前
@tool2dx 嗯 windows 和 linux 都试过,反正想模拟几万的带具体逻辑的高并发,就是要堆机器
goforwardv2
167 天前
@htxy1985 非常具有参考价值,单台 linux 的如果只是 ping-pong ,5 万都可以,但加上游戏的具体逻辑,2 万很不错了
future0906
167 天前
@goforwardv2 一台机器跑带逻辑的机器人根本跑不到 1W ,除非 50 core+

20W 的 PCU 都是几百 cores 跑的,所以性价比最高还是跑 docker 或者 k8
fatigue
167 天前
看你想测啥,测逻辑就服务端机器人,测网络登录交互这些就录包发包就行了,没听说过堆机器开客户端的。要针对性测试
nightwitch
167 天前
除了卡牌游戏没见过游戏服务端能承载十万人的...

看瓦罗兰特分享的数据,一个服务器跑 100+个 Instance ,性能就开始稳不住了(一个 Instance 也就 5v5 对局,10 个玩家)
https://technology.riotgames.com/news/valorants-128-tick-servers
cabing
167 天前
用 go 写个。超级简单啊~
nevermoreluo
165 天前
1. 我可能遇到的水平不高都是 client 端写的,服务端要出文档,到时候联运方(或者叫推广方)压测也是拿文档和机器人他们自己写了测的。
2. 刚开始不要想单组架构十万吧,都是自动扩展堆机器的。哪怕是手动扩展的方案也是方案,华夏滚服的概念又不是不能用,赚钱不寒碜。自动扩展也不用都做到,网关这种手动开了,能通过 haproxy (不过你这个 haproxy 如果是单台也是个单点故障)动态调整就好了,主要是游戏逻辑服角色服场景(关卡)服之类的需要自动扩展,个人感觉单台承受 3~5k 活跃其实就差不多了。
3. 单组服务要吃几十万,我感觉找个大哥从头到脚优化完游戏都凉了。沉淀一套自动扩展和应急补偿方案才是主要的。真要到需要压缩单组几十万的时候,先优化消息大小才是关键,带宽比机器贵都是钱,先扩容再花钱招大哥优化。不过我觉得到时候联运啊什么的会上门谈条件给方案的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054989

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX