压测报告
提示
阿里云性能测试服务(PTS)。
# 1.1.1 硬件环境
- linux 服务器 1台
服务器信息 | 参数 |
---|---|
CPU | 8核 |
内存 | 16G |
Mysql | RDS云数据库(最大链接3000) |
Redis | Redis云数据库(16G16G主从版最大连接数:10000) |
# 1.1.2软件环境
服务器信息 | 参数 |
---|---|
操作系统 | 系统CentOS7.4 【64位】 |
# 1.2测试工具
- 阿里云性能测试服务(PTS)
# 2.名词解释及测试结果
# 2.1名词解释
- 数据库会员数:应用注册用户数。
- 在线会员数:有登陆应用的会员。
- 并发数:登陆的会员,且同时在操作的会员。
- 经大量数据测算:数据库会员数:在线会员数:并发数在豹牙直播中,这3者的比例关系为100:20:1;
- 反过来说:1个并发数,可以支持20个会员在线,有100个注册会员。
# 2.2测试结果
# 2.2.1获取热门列表
- 用户去看直播,获取直播列表接口是压测重点。
版本 | 串11链路 起始/最大并发 | API 名称 | 总请求数 | 平均TPS | 请求成功率 | 平均响应时长 | 最大并发数 |
---|---|---|---|---|---|---|---|
php版本 | 200/2000 | 获取热门列表 | 780000 | 1604.21 | 100%(753021/0) | 700ms | 2000 |
golang版本 | 200/2000 | 获取热门列表 | 780000 | 待测 | 待测 | 待测 | 待测 |
注意
- 最大并发数 2000 此时服务器cup使用率约20%
- 服务器的内存消耗比较少,约8.08%
- 云数据库的cup使用率0.24%,内存使用率6.8%
- 云Redis占用链数81
# 2.2.2进入直播间
- 用户进直播间观看时,进直播间接口是压测重点
版本 | 串11链路 起始/最大并发 | API 名称 | 总请求数 | 平均TPS | 请求成功率 | 平均响应时长 | 最大并发数 |
---|---|---|---|---|---|---|---|
php版本 | 200/2000 | 进入直播间 | 908926 | 2471.41 | 100%(908926/0) | 446ms | 2000 |
golang版本 | 200/2000 | 进入直播间 | 71288 | 待测 | 待测 | 待测 | 待测 |
注意
- 最大并发数 2000 此时服务器cup使用率约81%
- 服务器的内存消耗比较少,约8.31%
- 云数据库的cup使用率66.24%,内存使用率7%
- 云Redis占用链数81
# 2.2.3送礼
- 用户进入直播间,送礼物的接口是压测重点。
版本 | 串11链路 起始/最大并发 | API 名称 | 总请求数 | 平均TPS | 请求成功率 | 平均响应时长 | 最大并发数 |
---|---|---|---|---|---|---|---|
php版本 | 200/2000 | 送礼 | 1895659 | 5251.88 | 100%(1895659/0) | 213ms | 2000 |
golang版本 | 200/2000 | 送礼 | 待测 | 待测 | 待测 | 待测 |
注意
- 最大并发数 2000 此时服务器cup使用率约85.17%
- 服务器的内存消耗比较少,约8.53%
- 云数据库的cup使用率29.12%,内存使用率7.1%
- 云Redis占用链数81
# 2.2.4数据统计分析
- 一台8核16G的服务器大概能满足2000-3000的并发.如果想要加大并发,
- 需要提升带宽和CPU的数量.经过大量数据测算,在豹牙直播中,
- 数据库会员数:在线会员数:并发数比例关系为100:20:1;反过来说:1个并发数,可以支持20个会员在线,有100个注册会员。
测试对象 | 并发数 | 在线会员 | 会员数 | 限制原因 | 解决方案 |
---|---|---|---|---|---|
php版本 | 2000 | 40000 | 200000 | cpu接近85% | k8s+集群+弹性扩容 |
注意
⨳ 有人问:我想在直播平台上实现10w用户在线,需要几台服务器?
- 如果按一台8核*16G的ECS,2500并发来测算的话:
- 100000/20/2500=2台ECS;同时需要配套8核16G级别的连接的redis,mysql来支撑。
⨳ 有人问:性能不够,该如何做?
- 采用golang微服务架构,搭配k8s+集群方案。IM采用B站开源的架构,如弹幕,消息等,轻松抗住。实测单机3.5W的QPS。
- 如有疑问可以加V详聊 BCFind5。
Last Updated: 2024/04/06, 18:00:25