iis-7 - regular - reiniciar application pool
Cómo verificar el último grupo de aplicaciones reciclado (5)
Esto le dará una lista de todos los procesos w3wp en la máquina y sus horas de inicio. ErrorAction evita que el comando arroje un error si no se inician sitios web y, por lo tanto, no existen procesos w3wp
ps w3wp -ErrorAction SilentlyContinue | select ProcessName, StartTime
Probado en Server 2012 R2 con powershell v4.0
¿Es posible verificar cuándo reciclé el grupo de aplicaciones la última vez, quiero verificar la fecha en que mi grupo de aplicaciones fue reciclado por última vez? ¿Hay algo en IIS que pueda obtener esta información?
Obtenga el tiempo de actividad del proceso de trabajo (recomendado):
$poolName = <your pool name goes here eg. DefaultPool>
$poolProcess =(gwmi -NS ''root/WebAdministration'' -class ''WorkerProcess'' | select AppPoolName,ProcessId | Where-Object { $_.AppPoolName -eq $poolName } )
$lastStartTime=(Get-Process -Id $poolProcess.ProcessId).StartTime
write-output $lastStartTime
Para que funcione, asegúrese de tener habilitadas las "secuencias de comandos y herramientas de administración de IIS".
En segundo lugar, está utilizando el registro de eventos, si está habilitado
Get-Eventlog -LogName system -Newest 1 -Source "WAS" -Message "*recycle of all worker processes in application pool ''$poolName''*")
Con Get-Eventlog
puede usar el argumento -After/-Before
para limitar aún más el resultado.
Para verificar si el grupo de aplicaciones se recicla en los últimos minutos "X", se puede usar el siguiente fragmento de PowerShell:
function isRecycledInLastNMinutes($appPoolName, $lminutes){
$beforeDate = Get-Date -format ''u''
$afterDate = $beforeDate.addMinutes(-$lminutes)
$result = (Get-Eventlog -LogName system -Newest 1 -Source "WAS" -After $afterDate -Before $beforeDate -Message "*recycle of all worker processes in application pool ''$appPoolName''*")
if( $result.length -eq 1){
return $true
}else{
retrun $false
}
}
Para obtener toda la información con un comando, use Get-WmiObject en lugar de get-process.
Get-WmiObject Win32_Process -Filter "name = ''w3wp.exe''" | Select-Object Name, @{"name"="ApplicationPool";expression={(($_).CommandLine).split(''"'')[1] }},@{"name"="Starttime";expression={$_.ConvertToDateTime($_.CreationDate)}}
Puede encontrar fácilmente la última hora de reciclaje utilizando este fragmento de PowerShell:
(Get-Process -Id <ProcessId>).StartTime
Por lo tanto, encuentre la identificación del proceso de su aplicación web en el administrador de tareas.
Primero agregue las siguientes columnas a través de Herramientas> Seleccionar columnas ... : seleccione PID y Línea de comando .
Busque cualquier proceso w3wp.exe y encuentre su aplicación examinando la línea de comandos (el nombre del grupo de aplicaciones es parte de ella) y anote su PID.
A continuación, ejecute el script de powershell para encontrar la última hora de reciclaje:
Espero que esto ayude
Si el inicio de sesión en reciclar está activado, puede ver esto en el Visor de eventos.
Si no es así, puede usar contadores PerfMon para ver el tiempo transcurrido del proceso en el W3WP.exe que representa su grupo de aplicaciones (que será la cantidad de segundos desde el último reciclado)