不清晰概念

   1,应用程序池就是可以看成装载计算机分配给动态网站的内存的容器。如果内存是水,那么应用程序池就是鱼缸,动态网站就是鱼缸中的金鱼。多个动态网站可以存在于同一个应用程序池里,即鱼缸中可以放多条金鱼。当然,如果金鱼多了,鱼缸中的空间有限,金鱼之间就会争抢空间,不是很坚固的鱼缸可能就会破裂,所有金鱼都会受到影响。即是动态网站多了,内存不足,可能会造成内存级别的溢出漏洞,影响所有在那个应用程序池上的动态网站。
      一个应用程序池是一个独立的进程,拥有一个线程池,应用程序池中可以有多个WebApplication,每个运行在一个单独的AppDomain中,这些WebApplication公用一个线程池。不同的AppDomain保证了每个WebApplication的静态变量不会互相干扰,不同的应用程序池保证了一个网站瘫痪,其他不同进程中的站点还能正常运行
 下图说明了他们的关系:

      

 

2,

      并发链接是指同一时间多个连接请求,这个可以在IIS-->网站(要修改的网站)-->高级设置-->最大并发连接数里修改 

      请求队列是指多个请求进来后,工作线程不够全部处理,请会把一部份请求放入队列。这个可以在应用程序池-->ASP.NET v4.0 Classic-->高级设置-->队列长度   里修改

      工作线程是在该应用程序池里可以使用的线程(在.NET 1.1中,默认的工作线程和请求队列分别为20)

      当1000个用户同时段请求网站时,如果并发链接为900个,那另外100个就不能连接。如果并发链接为1001个,那这1000个用户请求就会被放入请求队列(如果请求队列只有100个,那900个用户会表现出网站无法响应HTTP/1.1_Server Too Busy),工作线程假设有10个,那这1000个请求队列中的10个被马上处理,剩下的990个要等待工作线程处理完后再处理(这样的话990个就会表现出网站响应慢的问题)。

      一个网站对应一个应用程序池,一个应用程序池默认一个工作进程,一个工作进程有默认的工作线程数量(工作线程可以通过Machine.config的maxWorkerThreads修改,并跟CPU是几核有关系),我们可以通过设置应用程序池的最大工作进程为2,那这样就成了web园。相应的工作线程也随工作进程的增加也加倍,但是要考虑cpu和内存的会不会消耗过大。web园是直接的表现就是通过任务管理器里可以看到两个w3pw.exe进程。

posted @ 2014-04-20 18:21  行进  阅读(188)  评论(0编辑  收藏  举报