在IIS6中,每一个网站都有对应的应用程序池,在应用程序池有运行着网站的Application,在默认情况下,所有的网站的应用程序都会分配到默认的应用程序池当中,

 
当然,我们可以新建一个应用程序池,然后更改网站所在的应用程序池。
添加一个应用程序池:
 
在网站的属性的主目录选项卡下修改网站所在的应用程序池:
查看结果:
 
 
 
因为此时默认的情况下,所有的网站都在同一个应用程序池中,所以它们都会共享同一个w3wp进程,因为在默认的应用程序池中默认设置的Web园的最大进程数为1,如图所示。

 
此时我们分别访问默认应用程序池中的三个网站,可以看到进程管理器中只有一个w3wp进程在运行,这就验证了我们上面的提到的结论。
我们也可以使用命令行工具来查看运行的工作进程有哪些:
 
 
 
接着我们来测试一下Web园的使用
首先我们将默认应用程序池的Web园中最大的工作进程数设为5:
 
然后,我们对这个应用程序池中的3个网站中进行10次访问,最后我们再次查看工作进程w3wp的数量:
 
从上面的结果可以看到,修改了Web园之后,对应用程序池中的网站进行访问,最多会生成5个w3wp进程,就是我们在上面设置的值,此时,这5个w3wp进程就可以将用户的请求同时进行处。
注意:这里的5个w3wp进程之间是隔离的,所以它们之间的数据无法进行共享,例如Session,所以如果一个用户登录之后在Session中记录了他的登录信息,然后再后面的某次请求中他的请求不再是由原来的w3wp工作进程来处理就会造成用户掉线的状况。
 
接下来我们再次验证一下上述5个w3wp是否真的是属于默认的那个应用程序池的
 
 
因为,运行一段时间后,一个w3wp可能会占用很多的内存,所以此时,我们需要对工作进程进行回收,可以应用程序池的属性中对回收的时间进行设置:
 
 
当到达回收时间,或者我们手动点击了回收工作进程之后,IIS会重新创建相同数量的工作进程,让新的工作进程来替代旧的工作进程来处理请求,然后结束原来旧的工作进程。
例如,我们当前这个默认的应用程序池中有5个w3wp进程在同时运行,我们手动进行回收,此时,IIS会创建5个新的w3wp进程来处理请求,然后结束原来的5个进程,执行的过程可以看下面的图:
 
 
 
 
 
以上是在IIS6中的情况,下面我们来看一下IIS7中的w3wp工作进程:
 
 
 
在IIS7中,我们每次新建一个网站,默认的都会创建一个新的应用程序池,然后应用程序池中会包含我们的应用程序
 
 
 
在应用程序池中右键查看它的高级设置可以看到IIS7中的一个应用程序池的最大工作进程数也是1,所以,在一般情况下,我们访问IIS7上的一个网站,只会产生一个w3wp工作进程,不管请求数时多少,即有n网站就最多只会有n个w3wp进程。
 
当我们,修改最大工作进程数为3时,在多次访问这个网站时可以发现,结果与IIS6中相同,最多只会产生3个相应的w3wp工作进程。
 
 
从上面可以看到产生的3个工作进程都是属于t3这个网站的,在IIS7中同样提供了命令行工具操作IIS,这个工具在IIS7中名称是
appcmd.exe,它在IIS7的安装目录下,一般就在以下的位置:
 
 
 
使用appcmd监测w3wp的回收过程,可以得到与IIS6中相同的结果:
 
如果在运行命令的时候发生一下的错误可能是因为权限不足的原因,只要右键以管理员的身份运行cmd后在执行命令即可。

IIS6与IIS7中的w3wp工作进程的更多相关文章

  1. IIS6,IIS7中查看w3wp进程

    当我们服务器创建了很多应用程序池,然后某个w3wp.exe进程占用CPU和内存过高,我们怎么查找这个w3wp.exe进程属于哪一个网站呢.其实微软为我们提供了很好的查看工具: 首先打开windows任 ...

  2. IIS6与IIS7中如何设置文件过期

    在IIS6中:一. 打开IIS管理器 二. 选中要设置的网站单击属性,打开站点属性菜单 三. 单击HTTP头选项卡 四. 单击 启用内容过期 如:设置30分钟后过期,此时间段后过期项中填30,单位选择 ...

  3. IIS6.0、IIS7中的站点、应用程序和虚拟目录详细介绍

    这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录 (virtual directory)概念与作用,已及这三个东西在IIS6与 ...

  4. IIS中查看W3P.exe进程对应的应用程序池的方法

    对于IIS6可以运行 iisapp -a来显示应用程序池的性能列表. iisapp.vbs它是一个脚本程序,在安装2003时需要SP1才有 而IIS7可以直接用它的外壳命令 C:"Windo ...

  5. IIS7中的站点、应用程序和虚拟目录详细介绍 (转)

    这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录 (virtual directory)概念与作用,已及这三个东西在IIS6与 ...

  6. IIS7中的站点、应用程序和虚拟目录详细介绍

    IIS7中的站点.应用程序和虚拟目录详细介绍 这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录 (virtual direct ...

  7. IIS 6.0的web园 最大工作进程数细谈

    这篇文章主要介绍了IIS 6.0的web园 最大工作进程数,需要的朋友可以参考下:(摘自:http://www.jb51.net/article/84817.htm) IIS 6.0允许将应用程序池配 ...

  8. 转载:IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数

    一.IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫“IIS限制连接数”. 客户请求的连接内容包括: [ ...

  9. IIS 之 连接数、并发连接数、最大并发工作线程数、队列长度、最大工作进程数

    一.IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫“IIS限制连接数”. 客户请求的连接内容包括: [ ...

随机推荐

  1. Linux时间命令

    Linux一般有系统时间和硬件时间之分,date命令是显示和操作系统时间:hwclock用来操作硬件时间(日期).日期和时间很重要,比如错误的日期和时间会导致你不能编译程序. 1 date 用法:   ...

  2. Kafka消息重新发送

    Kafka消息重新发送   1.  使用kafka消息队列做消息的发布.订阅,如果consumer端消费出问题,导致数据并没有消费,此时不需要担心,数据并不会立刻丢失,kafka会把数据在服务器的磁盘 ...

  3. [转]MVC中几种常用ActionResult

    本文转自:http://www.cnblogs.com/xielong/p/5940535.html 一.定义 MVC中ActionResult是Action的返回结果.ActionResult 有多 ...

  4. c#基础学习(0706)之使用虚方法实现多态

    使用虚方法实现多态 namespace _0706 { class Program { static void Main(string[] args) { //这个时候调用的是父类的方法 Person ...

  5. DataTable如何删除特定行

    DataTable dt = dataSet1.table1.GetAllRows(); DataRow[] foundRow = dt.Select("catalogid = 0" ...

  6. dynamic结合匿名类型 匿名对象传参

    首先说明下,我一般很少用dynamic关键字(类)的,因为毕竟是由反射实现的,所以对于性能方面还是吃亏不少(注:由于心里没底,查了一些资料得知,dynamic实质上好像不是由反射实现的,其性能也比直接 ...

  7. [PHP] 重回基础(Array相关函数)

    使用函数array_keys(),得到数组中所有的键,参数:数组 $arr=array(); $arr['one']="one"; $arr['two']="two&qu ...

  8. Servlet的数据库访问

    创建数据库:   import java.sql.*; public class SqlUtil { static { try { Class.forName("com.mysql.jdbc ...

  9. SpringMVC 工作原理详解

    本文Github开源项目https://github.com/Snailclimb/JavaGuide,只供自己学习总结无商业用途,如有侵权,联系删除 先来看一下什么是 MVC 模式 MVC 是一种设 ...

  10. 关于JavaScript线程的讲解

    讲述js执行的相关线程.DOM操作等问题.参考博客:http://www.codeceo.com/article/javascript-threaded.html