你的服务器IIS最大并发数有多少?_win服务器

测试系统Window 2003 Server ,IIS 6.0 ,ASP.Net 3.5 sp1
Dual 1.8双核,2G内存,14G虚拟内存。
为了探寻IIS的最大并发数,先要做几个假设。
1、假设最大并发数就是当前的连接数。意思是当前能承受最大的连接,那么就表明最大的并发。
2、假设IIS应用程序池处于默认状态,更改设置将会对最大连接数产生影响。
做完假设,现在做限制,设置站点保持HTTP连接,超时设置成0,就是不会超时。在站点请求的default.aspx页面设置线程Thread.Sleep(int.MaxValue),接下来开发一个用来保持连接的小程序。

复制代码 代码如下:

class Program {
private volatile static int errorCount = 0;
private volatile static int rightCount = 0;
static void Main(string[] args) {
ServicePointManager.DefaultConnectionLimit = 10000;
int count = 0;
int all = 0;
while (true) {
all++; count++;
CreateThread();
Thread.Sleep(10);
if (count >= 200) {
Console.WriteLine(string.Format("sucess:{0};error:{1}", all - errorCount, errorCount));
count = 0;
}
if (all > 1800)
break;
}
Console.ReadKey();
}
static void CreateThread() {
Thread thread = new Thread(ActiveRequest);
thread.IsBackground = true;
thread.Start();
}
static void ActiveRequest() {
RequestClient client = new RequestClient("http://192.168.18.2/default.aspx?d=" + Guid.NewGuid());
client.RequestProcess();
if (client.IsError) {
errorCount++;
Console.WriteLine(string.Format("错误消息:{0}", client.Messages));
} else {
rightCount++;
//Console.WriteLine(client.Messages);
}
}
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace MaxLinked {
/// <summary>
///
/// </summary>
public class RequestClient {
HttpWebRequest request;
WebResponse response;
public RequestClient(string url) {
request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Timeout = int.MaxValue;
request.KeepAlive = true;
ErrorCode = -1;
}
public void AddHeader(string name, string value) {
request.Headers.Add(name, value);
}
private bool isError = false;
private StringBuilder buffer = new StringBuilder();
public int ErrorCode { get; set; }
public bool IsError {
get { return isError; }
}
public string Messages {
get { return buffer.ToString(); }
}
public void RequestProcess() {
try {
response = request.GetResponse();
} catch (WebException ex) {
ErrorCode = (int)ex.Status;
buffer.Append(ex.Message);
isError = true;
}
if (response != null) {
Stream stream = null;
StreamReader reader = null;
try {
//stream = response.GetResponseStream();
//reader = new StreamReader(stream, Encoding.UTF8);
//buffer.Append(reader.ReadToEnd());
} catch (Exception ex) {
buffer.Append(ex.Message);
isError = true;
} finally {
//if (reader != null)
// reader.Close();
//if (stream != null)
// stream.Close();
}
} else {
isError = true;
buffer.Append("建立连接失败!");
}
}
public void Close() {
if (response != null)
response.Close();
request.Abort();
}
}
}

程序设置为只能启动1800个线程,这是由于.Net单进程最大线程数好像是2000个。因此,要测试最大并发数,要需要同时开几个测试进程。把系统虚拟内存调到最大值,线程过多会急剧占用内存。现在开始测试。
打开web站点的性能计数器,把显示比例调成1万。
发现到5000个连接时,IIS服务器崩溃(503错误),去洗了个澡,发现IIS服务器无法自己修复错误。又测试了几次,发现最大并发值是8200个,但是一般到5000左右就会崩溃,有时候甚至只有1000个。
按8200个计算,一个用户开一个浏览器浏览网页,可能会占用2~3个连接,按两个计算,那么IIS默认情况下,最大并发数是4000个左右。
打开应用程序池配置,把最大工作进程数调高(默认为1),能有效提高最大连接数。我记得以前看过一篇文章,讲的是调到5左右比较合适。

时间: 2025-01-28 02:36:28

你的服务器IIS最大并发数有多少?_win服务器的相关文章

win2008 r2 web服务器IIS的安装与基本设置_win服务器

Web服务,又称为WWW服务,是Internet上使用最为广泛的服务. Web服务采用"浏览器/服务器"模式,在客户端使用浏览器访问存放在服务器上Web网页,客户端与服务器之间采用HTTP协议传输数据. 客户端所使用的浏览器种类众多,目前最为常用的是Windows系统中自带的IE浏览器(Internet Explorer),另外像火狐(FireFox).傲游(Maxthon).360浏览器等使用的也比较多. 服务器端所使用的软件则主要是Windows平台上的IIS以及主要应用在Linu

并发性-Web服务器的最大并发数和进程线程的关系疑问

问题描述 Web服务器的最大并发数和进程线程的关系疑问 刚才看了一篇关于进程线程的文章,一个进程会分配2G可用内存,一个线程默认会分配1M内存.那么一个进程最多能产生2000左右的线程数.那么一个web服务器(Tomcat)中一个请求过来,就会创建一个线程来处理,理论上不是只能最多处理2000并发请求了?而nginx好像可以处理更大并发(上万个).这是怎么实现的(不是每个请求生成一个线程?)?另外一个进程会分配2G可用内存是不是绝对的?还是只针对32位系统,64位是不是不止这个大小. 请高手指点

Win2003 IIS 安装方法 图文教程_win服务器

一般大家先安装好win2003系统,图文教程 Win2003 服务器系统安装图文教程要通过控制面板来安装.具体做法为: 1. 进入"控制面板". 2. 双击"添加或删除程序". 3. 单击"添加/删除 Windows 组件". 4. 在"组件"列表框中,双击"应用程序服务器". 5. 双击"Internet 信息服务(IIS)". 6. 从中选择"万维网服务"及&qu

IIS安全设置图文教程_win服务器

IIS安全设置 以我们帮客户维护网站经验来看,多用户账户分离式比较安全的,一个网站有问题不会影响别的网站安全.大家可以看这篇文章(IIS 多站点 用户隔离视频教程)再接着看下面的文章.服务器要考虑稳定.安全.性能修改默认站点为e:\webdefault\www,删掉c:/inetpub目录,删除iis不必要的映射 目录安排: 在E盘建一个web目录,每个站点的主域名为目录名建目录,再以每个站点的二级域名为目录名建目录做为网站根目录. 权限设置思路:每个站点的根目录为IIS来宾帐号(IUSR_XX

Windows 2012 安装IIS和FTP的方法_win服务器

 相信微软的Windows Server 2012,对部分用户而言都是崭新的面孔,而关于其在服务器上应用的专业技术文档更是少之又少.         护卫神经过整理,逐步将新技术授予广大用户,希望对大家的发展添砖加瓦--言归正传,当前使用的是Windows Server 2012 R2/NT6.3/IIS8.5       1.打开Windows 2012的服务器管理器,选择 管理→添加角色和功能       2.进入 添加角色和功能向导,选择 "Web服务器(IIS)"      

用Serv-U架设FTP服务器的方法与设置方法_win服务器

Serv-U是一种被广泛运用的FTP服务器端软件,支持Windows 9x/2000/XP操作系统.它安装简单,功能强大,可以用同一个IP设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小.支持远程登录管理等. 1.安装Serv-U Serv-U的安装相当还简单,你只需双击下载来的安装文件文件,按照提示一路点击"NEXT"按钮即可轻松完成. 注意:在选择安装目录时,最好选择安装在一个非系统盘里,以免将来系统发生异常时还要重新进行账号等的设置. 2.设置Serv-U Serv

win2003 服务器安全配置全套详解_win服务器

本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点. 基本的服务器安全设置 安装补丁 安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows Update,安装所有的关键更新. 安装杀毒软件 虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题.我一直在用诺顿2004,据说2005可以杀木马,不过我没试过.还有人用瑞星,瑞星是确定可以杀木马的.更多的人说卡

服务器维护小常识(win+linux)_win服务器

为了方便大家在维护中了解一些维护内容的同时又能避免出现错误.下面就收集了一些服务器日常维护的常识供大家参考. 服务器日常维护常识之硬件维护 服务器日常维护常识硬件维护1.储存设备的扩充 当资源不断扩展的时候,服务器就需要更多的内存和硬盘容量来储存这些资源.所以,内存和硬盘的扩充是很常见的.增加内存前需要认定与服务器原有的内存的兼容性,最好是同一品牌的规格的内存.如果是服务器专用的ECC内存,则必须选用相同的内存,普通的SDRAM内存与ECC内存在同一台服务器上使用很可能会引起统严重出错.在增加硬

免安装的Tomcat服务器的基本配置和安装_win服务器

假期的时候偶尔安装了一下,安装版和免安装版的都试过了,觉得免安装版的比较好一点,涉及到的配置比较多,文件也多,根据我现在掌握的知识,简单的做了一下免安装版的tomcat的基本配置和安装方法. 一.配置JDK 要想在自己的计算机上安装Tomcat,需要JDK的支持,因为Tomcat是用java语言编写的一个很轻量级的Web服务器. Java SE的最新版下载地址:http://www.jb51.net/softs/75615.html 1.首先将自己下载的jdk(这里使用的是1.7)下载后,解压或