测试服务器的最大并发的连接数

   原文地址:http://blog.chinaunix.net/u2/61062/showart_2194214.html

    今天上午测试了一下这段时间写的服务器的程序,主要测试的是服务器的最大的并发的连接数.
    服务器端使用的是ACE的前摄式(Proactor)模式,该模式在Windows平台下也就是大名鼎鼎的IOCP模型。(内存4G、CPU4核)

    模拟客户端测试程序的编写,采用多线程,一个线程对应一个连接,一个线程分配16K的线程空间,这样可以生成1万个线程(进程的地址空间2G / 16 * 1024)。客户端的工作:连接服务器,连接成功后,每隔1秒向服务器发送数据。

    测试结果如下:
    I/O模型                           尝试数/连接成功数
     IOCP                             10000/10000
    注意事项:

    在模拟客户端程序对应的机器上,需要修改注册表:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services下
    如果不改注册表的话,相应的
连接成功数<4000如下图:

 

TcpNumConnections
Key: Tcpip/Parameters
取值类型:REG_DWORD - Number
取值范围:0 - 0xfffffe
缺省值:0xfffffe
描述:本参数限制可以同时打开的TCP连接的数量

MaxUserPort
key: Tcpip/Parameters
取值类型:REG_DWORD - Number
取值范围:5000-65534 (十进制)
缺省值:0x1388 (5000 十进制)
描述:控制一个应用程序可以打开的最多端口数量。通常,短命的端口在1024-5000之间分配。
当试图发起5000以上端口的连接,系统将出现WSAENOBUFS(10055)错误:因为队列满或者系统
缺乏足够的缓冲空间。
如下图所示:

 


测试效果截图:
模拟客户端
红色的框中表示连接过万
蓝色的框中表示因为线程生成太多导致的栈溢出!
10-3-16加上面这句话不对,原因是cSendData对应的栈空间空间分配的太小,只有20字节,超出了其范围,
导致的栈溢出。而不是 线程生成太多导致的
    今天晚上再测试一下,网上说IOCP的并发的连接数可以到5W-6W,我改一下程序,把线程的栈空间改小一下,多生成些线程,将测试结果写入文件,让它跑一晚上吧,试试看,行不行。
    Good Luck!!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Linux中测试并发连接数可以使用一些工具和命令来完成。以下是一种常用的测试方法: 1. 使用Apache Benchmark(ab)命令进行测试。ab是一个用于进行性能测试的工具,可以模拟多个并发连接,并服务器的响应时间。 使用命令:ab -n 总请求数 -c 并发数 URL 例如,要发送100个请求并发数量为10的连接,可以使用以下命令:ab -n 100 -c 10 http://localhost/ 此命令将输出关于请求数、吞吐量、连接时间和响应时间等方面的统计信息。 2. 使用Siege工具进行测试。Siege是另一个用于进行并发性能测试的工具,它提供了更多的选项和细节来进行测试和分析。 使用命令:siege -c 并发数 -r 总请求数 URL 例如,要进行50个并发连接的100个请求的测试,可以使用以下命令:siege -c 50 -r 100 http://localhost/ Siege还提供了其他选项,如持续时间、延迟时间、随机URL等。 3. 使用自定义脚本进行测试。如果需要更加灵活和定制的测试,可以编写自己的脚本来模拟多个并发连接并发送请求。 使用网络编程语言(如Python、Java等)编写脚本,创建多个并发连接,发送请求,并记录响应时间和其他相关指标。 这种方法需要熟悉编程语言和网络编程的知识,但可以提供更加精确和定制的性能测试。 无论使用哪种方法,测试并发连接数可以帮助我们评估服务器的性能和承载能力,以便优化和调整系统配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值