IIS 并发连接 设置与测试
来源:互联网 发布:三菱plcfx3u编程软件 编辑:程序博客网 时间:2024/06/04 23:31
背景介绍
- windows7
- iis7.0
- .net 4.0
配置项
通过配置网站的限制或者通过高级选项配置,效果是一样的,默认值是4294967295
通过图片中的文字,清楚的知道当网站并发请求大于这个设置的数值时,会收到503错误。
应用程序池的设置
队列设置
进程数量设置
测试代码:
网站端代码:
/// <summary> /// Handler1 的摘要说明 /// </summary> public class Handler1 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; var dt = DateTime.Now.ToString("HH:mm:ss:fff"); System.Threading.Thread.Sleep(TimeSpan.FromSeconds(double.Parse(System.Configuration.ConfigurationManager.AppSettings["sleeptime"]))); context.Response.Write(System.Threading.Thread.CurrentThread.ManagedThreadId + " - Hello World! 开始时间:" + dt + "结束时间:" + DateTime.Now.ToString("HH:mm:ss:fff")); } public bool IsReusable { get { return false; } } }
客户端代码
class Program { static void Main(string[] args) { Console.WriteLine("输入exit退出程序,输入其他字符开始程序"); List<Thread> threadlist = new List<Thread>(); while (Console.ReadLine() != "exit") { Console.WriteLine("开始建立请求" + DateTime.Now.ToString("HH:mm:ss:fff")); threadlist.Clear(); for (int i = 0; i < 10; i++) { threadlist.Add(new Thread(() => { var client = new System.Net.Http.HttpClient(); var dt = DateTime.Now.ToString("HH:mm:ss:fff"); Console.WriteLine(string.Format("线程名【{0}】线程开始时间:" + dt, Thread.CurrentThread.Name) + " 结果:" + client.GetStringAsync("http://172.16.13.106:8888/Handler1.ashx").Result); }) { Name = i.ToString() }); } threadlist.ForEach(t => { t.Start(); }); } } }
测试结果
本次测试刚好是开启了10个线程(据说windows7中的iis最大运行线程就是10个,接下来我们开启50个线程 看一下结果)
50个线程测试结果
通过上面图片我们可以发现,iis给出的线程id(就是在“结果:”后面出现的数字)一直在 6、8、9 、10~17这几个数字之间循环,很明显是只有10个线程在处理。
这就已发出我们再网上经常看到好多人都在转载的文章,一下给出这个文章的连接http://blog.csdn.net/dream_ll/article/details/45217691
补充:通过多次测试,并不是每次都只有10个线程,也出现过两次有11个线程id的时候
当我们把应用程序池的进程从1改到100的时候,请求处理速度明显变快了,从以前的完成50个并发需要1分钟到现在只需要11秒左右,虽然我还不明白为什么会是这样,按照网上说法是开启多个进程进行处理,此时需要小心session,不要存在进程中,可能会导致丢失。
当我们修改配置连接数的时候,如果并发测试数量大于配置的数量,会收到503的异常,因为我用的HttpClient进行测试的,如果你直接使用网页进行打开,会返回一个503页面。
不同的是:
队列数貌似没有任何作用,我的队列数全程都是设置的1000,但我把最大连接数设置成5的时候,并发测试链接10个的时候仍然会返回503,并没有进入队列。
期待大家指点迷津。
总结:此文章存在很多疑问和漏洞,明显是对iis的工作原理了解不够清楚,此次测试能够得到的就是 最大连接数一定会限制同时请求的数量,超过了一定会返回503,还要就是浏览器的并发请求是有限制的 chrome默认是6个,ff默认好像是4个。这个也会随着浏览器版本的变化而变化。
http://blog.csdn.net/dream_ll/article/details/45217691
https://msdn.microsoft.com/zh-cn/library/7w2sway1.aspx
http://bbs.csdn.net/topics/391893556?page=1
http://www.cnblogs.com/sandyliu1999/p/5099615.html
- IIS 并发连接 设置与测试
- IIS最大并发连接数
- IIS最大并发连接数
- 监控IIS并发连接数
- IIS设置连接超时
- Apache限制IP连接数与并发数设置
- 究竟何为IIS并发连接数
- 查看iis即时时并发连接数
- IIS并发连接数及性能优化
- 如何查看IIS并发连接数
- 如何查看IIS并发连接数
- IIS并发连接数及性能优化
- 如何查看IIS并发连接数
- Win2008ServerR2下查看IIS并发连接数
- IIS并发连接数和数据库连接池
- IIS并发连接数及性能优化
- 如何查看IIS并发连接数
- 如何查看IIS并发连接数
- gitlab上删除项目
- 卷积神经网络-学习笔记
- MATLAB绘制梯形图
- CentOS 6.5安装配置NFS服务器
- Android 入门
- IIS 并发连接 设置与测试
- 用区块链技术让数字资产互联:他们想打造数字经济的超级金融市场
- NYOJ 161-取石子 (四)
- 传统Jdbc、hibernate、Mybatis三者对比
- 线程池(实现多线程的第三种方式)
- STM32晶振8M改12M方法
- Qt 5.9.1 在Windows下部署小工具、企业级应用总结
- pycharm破解方法
- 自己记录四舍五入,并且格式化