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

168 天前
 goforwardv2

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

4252 次点击
所在节点    程序员
32 条回复
zx900930
168 天前
jmeter tcp sampler
测试机资源打满了是测试机的问题,该加资源就得加资源
coderxy
168 天前
jmter locust ?
XSDo
168 天前
游戏很多请求是有逻辑的 没有 http 接口测试那么简单,优化下自己写的压测客户端 一般没有啥问题,最多开多机台机器去压测
htxy1985
168 天前
当年我们草台班子就是自己写的简易客户端,可以深入到具体的业务逻辑中,模拟真人行为。下班后用大家的机器,一个机器开 N 个进程进行模拟测试。单个测试机,感觉再大的资源也是有限的,另外资源也有限,申请不下来那么好的测试机。
ugpu
168 天前
不是写机器人压测吗? 这还能有专业工具?
Jinnrry
168 天前
直接公测,让玩家帮忙测试
MoYi123
168 天前
只能专门写个游戏 bot 吧.
guyeu
168 天前
都有服务端了,那肯定是有客户端的,在已有客户端的基础上封装一套 bot 来跑压测并不复杂。
我比较想知道 TCP 的话就不是 request-reply 那种消息模型了吧,传统的响应延时这种指标就不太好使了,你们用哪些指标来评估服务器的性能表现呢?
shuax
168 天前
自己单独写个 TCP Client 压测,我一般用 python asyncio 写写。
goforwardv2
168 天前
@XSDo 是的 想模拟几十万级别的 TCP 连接,估计只能用多台机器了
goforwardv2
168 天前
本质上是模拟几十万级别左右的 TCP 高并发,而且每个 TCP 连接都有自己的消息交互逻辑,并不是简单的 ping-pong ,看了大家的回复,只能是找多台机器一直开简易客户端了(就是机器人了)。比较好奇的是,大家平时压测的机器,比如 8 核 16G 的大概最多同时开多少个机器人
qishua
168 天前
用云厂商的 pts 压测,按量的,实现你的并发压测需求,最多也就花个几十块钱
shuax
168 天前
几十万的目标订得太大了吧,说点难听的,在线几十万的游戏,不会来问这个问题。
goforwardv2
168 天前
@shuax 肯定没有这么多,就是自己模拟下这么大的并发下,会有哪些问题,也想学习下
Dream95
168 天前
jmeter 太老了,线程模型一直没有更新。阿里云有个 PTS 服务可以研究下
chensuixiang
168 天前
以前我是手写的,现在我推荐 k6 。强大且灵活,特别适合开发人员。
mightybruce
168 天前
locust + boomer 值得拥有,写一点相关代码可以对各种类型协议做分布式压测

locust master 只负责数据的收集和消息的广播等操作
bommer 是具体的发压机器
future0906
168 天前
游戏服务器不是纯协议的,都是有系列逻辑的,通用工具基本没用。如果是服务器程序自己写用例的,可以直接用服务器作为机器人载体,再利用服务器的部署能力去做集群压测。顺便指标啥的也可以走服务器的收集工具。

如果没有的话,建议 k8s+压测脚本。
shiyuu
168 天前
redbule
168 天前
自己写 bot 压测

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

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

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

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

© 2021 V2EX