IOCP 压力测试问题

问题描述

最近项目要求开发一个支持4W左右个Socket长连接的服务器程序。准备用.net下的SocketSocketEventArgs来实现,写了一版,在本机测试时(客户端和服务端均在本机),服务端程序可并发处理6W个连接,毫无压力,但是当把服务端程序放到公网上测试时,支持的连接客户端到达1000左右就无法连接了,(telnet服务器的监听端口也很慢,或者连不通)。不知道问题出在哪里,就算考虑到网络延迟问题,但是这么大的差距也无法接受,请有相关经验的大大指教,可能存在的问题,不胜感激。

解决方案

解决方案二:
PS:服务器操作系统是windowsserver2008,托管在IDC机房,100M共享带宽
解决方案三:
查看公网是服务器的资源占用,如果小于内网6W个,说明问题在网络,如果等于6W个,问题在服务器,总的来说,是服务器没有考虑数据传输延时和粘包处理不好的问题
解决方案四:
无代码,无真相
解决方案五:
可能和测试方法有关,建议贴上代码看看
解决方案六:
windowsserverTCP连接数好像是有限制的。可以通过改注册表去改到最大
解决方案七:
引用楼主mark_gis的回复:

最近项目要求开发一个支持4W左右个Socket长连接的服务器程序。准备用.net下的SocketSocketEventArgs来实现,写了一版,在本机测试时(客户端和服务端均在本机),服务端程序可并发处理6W个连接,毫无压力,但是当把服务端程序放到公网上测试时,支持的连接客户端到达1000左右就无法连接了,(telnet服务器的监听端口也很慢,或者连不通)。不知道问题出在哪里,就算考虑到网络延迟问题,但是这么大的差距也无法接受,请有相关经验的大大指教,可能存在的问题,不胜感激。

NET在内网或本机测试是可以搞到6W的,不过很吃力了。你再放到公网上。。。可想而知了。。。6W个你应把他分几个网关然后再与数据服务器连接,而不是直接数据服务器。
解决方案八:
引用1楼mark_gis的回复:

PS:服务器操作系统是windowsserver2008,托管在IDC机房,100M共享带宽

真逗。你的客户端跟服务器之间最“窄”的地方也是100M带宽?
解决方案九:
本机测试可能不走网络,最少也要搞个局域网测试。楼主的情况,看起来像是网络环境问题。

时间: 2024-10-29 14:44:31

IOCP 压力测试问题的相关文章

iocp-IOCP压力测试,出错处理,求解

问题描述 IOCP压力测试,出错处理,求解 IOCP压力测试 客户端并发1000个连接,发送数据给服务端,服务端接收到数据后,又把数据发回去客户端,客户端收到数据后又发回给服务端,就这样,大家的网卡都满载了,占用99% 一会就有很多Socket收到以下通知: GetQueuedCompletionStatus返回Flase lpNumberOfBytesTransferred=0 lpCompletionKey不为空 lpOverlapped不为空 WSAGetLastError=ERROR_N

压力测试工具——Galting

为什么要写Gatling呢?网上已经有一些介绍Gatling的好文章了,比如两位TW同事的文章,可以看这里(我知道Gatling也是因为这位作者介绍的),还有这里.主要是因为最近在使用Gatling做压力测试,感觉这个工具非常好用,所以想结合自己的使用情况也推荐一下.Gatling是基于scala写的一个开源的压力测试工具,它的特点是简单易用,测试报告简洁漂亮,api通俗易懂.   JDK1.7 Gatling是基于jdk1.7开发的,所以还在用jdk1.6的同学需要先下载jdk1.7,才可以启

压力测试工具ab.exe简介

一.介绍在安装apache时其bin目录下可以找到ab.exe文件,也可以单独下载该文件.这是一个小压力测试工具. 二.使用cmd面板中切换到该文件所在路径,输入ab -help查看帮助. 常用命令 ab -n 1000 -c 100  http://127.0.0.1:8080/testDemo 这行命令的含义是: -n 1000发出表示1000个请求, -c 100表示100个并发数去访问该个项目.若运行正常,会显示出运行的相关信息.若没有反应或者无返回,可能要考虑程序的内存处理相关问题了.

windows系统中安装Jmeter压力测试工具

  Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库, FTP 服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能. JMeter的作用 1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样

web压力测试工具apache

现在很多web压力测试工具都是收费的,但是apache却自带了一个免费的压力测试工具,即ab工具(命令).具体可在Apache的根目录下的bin目录里面,找到一个ab.exe文件就是.用它可以粗略检测一下自己的程序性能如何. 具体用法如下,摘抄自网上.如有错误,还请指正. 格式 ab [options] [http://]hostname[:port]/path 参数 -n requests     Number of requests to perform //在测试会话中所执行的请求个数.默

网站导航的压力测试

最近读了一篇关于导航的压力测试的文章,觉得挺有帮助的,所以想把里面的一些方法推荐给大家.当一个用户到达一个页面时,经常会遇到下面的问题: 我在哪儿? 这是什么? 我可以去哪儿? 怎么样测试这个页面的导航能力呢? 随机的从你的网站上选择一个页面: 把这个页面打印成黑白的,并把页面头部的浏览器地址栏和下面的版权及公司信息部份去掉: 假装你是第一次进入这个网站,并试图回答下面的问题(详见下列问题列表): 在一张纸上写下你所想的和答案: 让你们团队的其它成员或熟悉你网站的朋友也与你做同一试验,大家象跳伞

mysql的高性能压力测试

前言:根据业务需要,需测试mysql 性能和压力测试. 这里我说下测试方法和 测试过程以及测试中出错的问题 估计很多人 跟我一样 要测试mysql 的性能 压力,网上找了很多资料有很多,但是很乱,所以这里我做个总结,拿自己的真实服务器测试的.并且 想测多少数据 都能模拟出来!这里只介绍方法. MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问 mysql来执行测试. [root@localhost smacks]# mysql -V mysql  Ve

ubuntu中安装apache ab命令并进行压力测试

1.安裝ab命令 sudo apt-get install apache2-utils 2.ab命令参数说明 Usage: ab [options] [http[s]://]hostname[:port]/path Options are: //总的请求数 -n requests Number of requests to perform宅 //一次同时并发的请求数 总的请求数(n)=次数*一次并发数(c) -c concurrency Number of multiple requests t

nginx的压力测试、访问方式及加密综述

Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器.今天我们将从多方面来对nginx来作介绍,包括诸如nginx和http的压力测试.nginx的访问方式.nginx的加密访问等 一.安装nginx 1.拆解并安装 tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src ./configure --prefix=/usr/local/libevent make && ma