测试tcp连接数工具_【游戏】服务器性能测试(八) 服务器网络问题整理

一、引言

    现在市面上有各种各样的游戏,其服务器的架构也是千差万别,一个好的服务器框架往往离不开一个稳定可靠的网络通信模块。在做服务器性能测试的时候,特别需要针对服务器的网络通信模块做详细的压测,以确保其稳定可靠。压测过程中肯定会遇到各种问题,如果能够深入去理解这些问题的话,那么就可以掌握更多的知识。本篇就简单介绍一些与网络有关的问题。

二、TCP的半连接队列与全连接队列

e2d569936e4daffc4a5906272f07df3e.png

    这是一个简单的服务器TCP网络编程的步骤,其中listen开启监听的时候,可以传入一个backlog参数设置全连接队列的大小。一般情况很少会去理解和关注它,在使用压测工具去进行高并发connect服务器,如果遇到连接不成功的情况,就可以考虑是不是这个引起的。关于TCP的半连接队列与全连接队列可以参考下面的文章,解释的比较详细。

https://www.jianshu.com/p/65ee5d12b6f2 

JensenWong的这篇“TCP的半连接队列与全连接队列”介绍的很详细。

简书,JensenWong

三、Linux epoll网络模型中的事件机制

    服务器一般运行在Linux上,使用Linux的epoll网络模型来搭建高并发的网络通信模块,epoll的事件机制支持水平触发边缘触发。在大多数的网络编程中更多是采用边缘触发,如果在压测的时候发现发送了请求包但是服务器却没有进行响应,那么可以关注下服务器在使用边缘触发情况下读取网络数据的逻辑是否有问题。关于水平触发和边缘触发的解释可以参照下面的文章。

可参考这篇文章的解释,可能需要实际代码编写后才好理解 

https://www.cnblogs.com/pang1567/p/4057375.html

博客园,小菜庞

四、收发包限制

    这里说的限制是指1秒内或更短时间内的包数量,如果服务器对每个客户端接收网络数据包的数量没有做限制,或者是发送响应客户端时的包数量没有限制的话,那么可能就会存在遭到被网络攻击的风险。一个客户端瞬间发送大量的网络包给服务器,一方面会引起内存的大量分配,造成程序崩溃,另一方面服务器将一直在处理这个客户端的请求而无法响应其他客户端。

五、更多问题列表

    1. 最大连接数,能够与服务器保持持久连接的客户端数。可以看ulimit相关的内容。

    2. 网络协议的设计方式,针对请求包的完整性和可靠性校验。可以参考之前协议测试里面的介绍。

    3. 单包大小限制,防止瞬间的内存分配问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值