【游戏】服务器性能测试(八) 服务器网络问题整理

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

【游戏】服务器性能测试(八) 服务器网络问题整理


一、引言


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


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


微信图片_20220424105305.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. 单包大小限制,防止瞬间的内存分配问题。



欢迎微信搜索"游戏测试开发"关注一起沟通交流。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
25天前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
69 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
15天前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
40 2
|
21天前
|
存储 安全 数据可视化
提升网络安全防御有效性,服务器DDoS防御软件解读
提升网络安全防御有效性,服务器DDoS防御软件解读
35 1
提升网络安全防御有效性,服务器DDoS防御软件解读
|
1天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
8天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
8天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
151 1
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
25天前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
42 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
29天前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
323 1
|
8天前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS