站点图标 江湖人士

2024 查看IIS站点应用程序池进程ID指南

零零后逆袭暴富指南

零零后逆袭暴富指南

这是在windows服务器上排查内存过高,或者其它问题常会使用到的,查看IIS上站点应用程序池进程ID指南这篇文章就分享一下怎样查看windows服务器上通过IIS部署的站点,对应的应用程序池的进程ID,因为个每应用程序池都会使用独立的进程来运行。

查看IIS站点应用程序池进程ID

很多的asp.net web项目部署到win服务器的IIS上后,某些情况下可能会感觉到项目访问的速度非常慢,然后查看服务器的使用情况,可能会发现内存、CPU、TCP等占用率非常高。这里就针对内存占用率较高的情况进行描述处理。

打开任务管理器-资源监视器

这个不多说,基本上都会,主要是通过打开任务管理器,找到资源管理器找到内存过高的w3wp进程。

点击到内存选项卡,可以查看到PID列对应到的w3wp.exe进程,例如下图所示的3个IIS进程的PID为17748、25888和27532。

2024 查看IIS站点应用程序池进程ID指南 6

剩下的事情就是通过命令行找到对应的应用程序池,进程相关联即可。

执行命令

通过查看IIS应用程序池的进程ID,找到IIS站点对应的进程ID。

1. 管理员身份运行cmd;
2. 跳转到C:\Windows\System32\inetsrv目录;
3. 然后运行appcmd list wp即可查看IIS应用程序池的进程ID;

cd C:\Windows\System32\inetsrv
appcmd list wp
2024 查看IIS站点应用程序池进程ID指南 7

以管理员身份运行打开CMD,然后输入​%systemroot%\system32\inetsrv\AppCmd.exe list wp​ 或 ​c:\windows\system32\inetsrv\appcmd list wp​,然后回车,这样就可以看到对应的PID对应的是哪个应用程序池了。

这样找到了哪个应用程序池就找到了具体部署的哪个项目了,方便修改项目的BUG问题。

以下内容引用博文:https://www.cnblogs.com/michaeldonghan/p/9277302.html

IIS+Asp.Net Mvc第一次访问慢的问题

Asp.net Mvc站点部署在IIS上后,第一个用户第一次访问站点,都会比较慢,确切的说是访问站点的Action页面(即非静态页面,因为静态页面直接由IIS处理返回给用户即完成请求,而Action页面IIS要转交给Aspnet_Wp工作进程,进而涉及相关初始化操作,这些初始化操作是比较慢的。第二次访问站点就不需要再初始化了所以就快了)。

 这种第一次访问慢的问题不仅发生在网站第一次部署启动,也发生在站点重启站点程序池回收(经测试,第一次部署启动初始化所用时间会多一些,然后是站点重启,然后是站点回收)。

1.站点重启包含手动重启和修改web.config配置、修改IIS上站点配置、更新站点bin目录的dll等引起的自动重启。如果你的站点是新上线的web或者会持续修改添加功能的web,那难免会更新dll导致重启。其它编译型语言(比如java)也是如此,更新了服务端组件,都难免要重启站点。这边会分享.net环境下如何优化此问题;

2.站点程序池回收是IIS建议的,本来默认是29小时回收一次。为什么要建议回收呢,大致可以这样理解:一个每日定时回收的机制就像是在发生轻微内存泄露或者其它拖累Worker进程的因素的情况下,刷新IIS的良药,站点回收即节省了资源又提高了稳定性。然而,自动回收后第一次访问慢的问题困扰了许多人,其实只要稍微设置就可以解决,即没有困扰也拥有了回收的优点。

如何设置IIS自动回收

1、先在IIS上设置相应应用程序池的“高级设置”(IIS版本要在8或8以上,要知道IIS10早已出来了,如果你在用IIS很低的版本,然后在报怨IIS,我…),如下图,这样设置后,回收只会发生在凌晨04:00:00

要确定有安装IIS应用程序初始化功能,如下图:

2、在IIS上设置站点的“高级设置”,把【预加载已启用】设置为true。

设置完这两步,当站点(自动)回收时,访问站点也是秒开不受任何影响,它的原理是在回收时会保持站点持续运行,这样的回收可以理解为把旧的Worker内容平滑的移到新的Worker上,然后回收掉旧的Worker。但是要注意,回收会导致站点内存信息丢失,因此如果你的设计是把session放在内存,则就要设置永不自动回收,那只要在第1步的基础上把【特定时间】清空即可。不过我个人会建议你不要设计session放内存,你更新个dll导致站点重启,内存也是清空的,你不如把session放在memcache/redis中,如果你的系统还没用上这些,那你就用cookie代替session吧,cookie更灵活适用的场景也更多。

现在回收的问题完美解决了,接下来说说站点重启。站点重启肯定是要重新加载配置重新加载dll(不想重新加载dll的,看文章最后一段),初始化是免不了,默认重启后第一个用户第一次访问站点会触发初始化,那么我们可以在站点启动/重启时,系统自动发一个站点请求,让系统自己尝尝第一次访问慢的问题。

退出移动版