我们目前有几个进程使用相同的映像名称运行:w3wp.exe。
其中之一有内存泄漏,所以直到开发人员插入,我们想要运行一个计划的任务,以杀死该过程之前,内存耗尽服务器上。
我一直在使用:
taskkill / F / FI“MEMUSAGE gt 5000000”/ IM“w3wp.exe”
无论何时内存使用量大于5GB,都会导致进程死亡。 我每5分钟就把这个作为一个计划任务来运行。
这工作,但它也杀死w3wp.exe的其他实例。 他们都在NTAUTHORITY下运行。
我的问题是,有没有一种方法来隔离单个进程在多个进程在同一个图像名称下运行?
有谁知道更好的方法来做到这一点?
干杯,
迈克尔
在batch file中尝试以下操作:
@echo off set tmpfile=%tmp%\tasklist~.txt tasklist /FI "MEMUSAGE gt 5000000" | FIND "w3wp.exe" > "%tmpfile%" for /F "tokens=2*" %%i in (%tmpfile%) do @taskkill /f /PID %%i del %tmpfile%
编辑:其实,还有一个更好的方法:
首先,您需要在自己的应用程序池中隔离应用程序。 然后,您只需发出以下命令:%windir%\ System32 \ inetsrv \ appcmd.exe回收应用程序“MyApplicationPool”
(如果需要,使用%windir%\ System32 \ inetsrv \ appcmd.exe列表apppool获取名称)
这应该优雅地回收应用程序(除非它真的被卡住了)。