链接数还是上不去?

z54123321

内核优化和ulimit都按照官方文档的设置了
 
php版本7.0和7.1都试过
event拓展也按照官方文档pecl安装和选项成功
压测链接数就是过不了2000,头好大啊
GateWay  gate 和bs  都是 设置4个进程
 
需要增大这个进程数量吗?

阅读 1577
9个回答

walkor

并不是所有业务都支持高并发连接数,一般来说单台服务器能承受的qps是有极限的,带业务的服务单机一般很难超过10万qps,受限于网卡、带宽、cpu计算能力、业务代码质量、服务架构、客户端承受能力、业务类型等等原因。
 
就业务类型来讲:
 
假设你的业务是请求响应式的业务,服务器带业务qps极限2万。如果每个连接每秒请求100次,那么也就是最多支持200个连接;如果每个连接每10秒发出一个请求,那么你的服务器可以支撑20万连接。
 
假设你的业务是推送类的,一个人发言广播给其他人,按照服务器吞吐量6万消息/秒来算(已经需要百M带宽),每秒30人发言,最多支持2000人。但是如果每秒有6人发言,那么可以支持1万人在线。相比真实聊天室场景,后者更符合实际情况。
 
所以长连接压测时要考虑业务场景,根据实际业务场景去测试,否则压测出来的数据并没有什么实际意义。

  • z54123321 2018-10-29

    这边是游戏业务,是3台 2核4G构成分布式,一台Register 其他两台是 Gate和Bs,然后负载均衡用阿里的 标2 最大上限是5W链接,用之前你发在论坛里面的脚本,我设置30秒心跳间隔,但是我这边测 不管是 通过负载还是 单个节点去链接都是在2000-3000的连接数,再往上拿别的机子去实际链接就会出现链接超时的情况了,头很大,我看到论讨里说随随便便上1W链接 我怕是我这边哪里配置有问题还是怎么

walkor

用workerman压测workerman的话,客户端服务器也需要安装event扩展,并根据workerman手册优化linux内核,否则客户端本身都无法支持发起大的并发连接。另外看下是否在业务里有广播数据的情况。

  • z54123321 2018-10-30

    没有广播数据,当count00的连接发的是查询当前连接数的信息会有一次响应,其他的都是发1心跳,测试机也安装了event拓展,就是不管通过负载还是指定节点去连接,过3000之后,我在另外的实体机去连接就会出现连接过慢、连接超时,整个压测流程只有心跳和少量的查询响应

  • zhouciming 2018-12-17

    @3938:哈哈,我在转向用c++写个测试客户端,并发创建多个客户端做压力测试,看看服务器的响应到底能到啥程度!

walkor

压测过程中出现无法连接时,客户端 服务端都运行php start.php status 
ulimit -n
sysctl -a | grep nf_
都贴下。
另外试下直接在服务端压测,这样可以排除网络带宽瓶颈。
 

z54123321

[attach]1303[/attach]

[attach]1305[/attach]

[attach]1304[/attach]
 

  • 暂无评论
walkor

还有客户端的

  • 暂无评论
z54123321

[attach]1307[/attach]

[attach]1306[/attach]

[attach]1308[/attach]
 

  • 暂无评论
walkor

在一台服务器上通过127.0.0.1压测本机试下

z54123321

[attach]1309[/attach]
我跑了几次,差不多都跑到内存耗尽,连接确实上了15000了

  • zhouciming 2018-12-17

    难道1万5的连接就到头了!你这测试程序难道很消耗内存吗?还是用了比较复杂的业务呢!?

walkor

那之前可能是遇到网络瓶颈了,比如走的外网带宽不够

  • 暂无评论