Можно ли проверить, когда я повторно использовал пул приложений в последний раз, я хочу проверить дату, когда мой пул приложений был в последний раз переработан, есть ли что-нибудь в IIS, я могу получить эту информацию.
Как проверить последний пул приложений
Ответ 1
Если запись в очередь включена, вы можете увидеть это в средстве просмотра событий.
Если это не так, вы можете использовать счетчики PerfMon, чтобы увидеть время, прошедшее с процесса на истекшем времени, на W3WP.exe, представляющее ваш пул приложений (который будет числом секунд с момента последнего использования)
Ответ 2
Вы можете легко найти последнее время утилизации, используя этот фрагмент powershell:
(Get-Process -Id <ProcessId>).StartTime
Поэтому найдите идентификатор процесса вашего веб-приложения в диспетчере задач.
Сначала добавьте следующие столбцы через Инструменты > Выбрать столбцы...: выберите PID и Командная строка.
Посмотрите на любой процесс w3wp.exe и найдите свое приложение, изучив командную строку (имя пула приложений является ее частью) и запишите свой PID.
Затем запустите powershell script, чтобы найти последнее время цикла:
Надеюсь, что это поможет
Ответ 3
Это даст вам список всех процессов w3wp на машине и их время начала. ErrorAction не позволяет командлету выдавать ошибку, если ни один веб-сайт не запущен, и поэтому не существует никаких процессов w3wp.
ps w3wp -ErrorAction SilentlyContinue | select ProcessName, StartTime
Протестировано на сервере 2012 R2 с powershell v4.0
Ответ 4
Чтобы получить всю информацию с помощью одной команды, используйте Get-WmiObject вместо get-process.
Get-WmiObject Win32_Process -Filter "name = 'w3wp.exe'" | Select-Object Name, @{"name"="ApplicationPool";expression={(($_).CommandLine).split('"')[1] }},@{"name"="Starttime";expression={$_.ConvertToDateTime($_.CreationDate)}}
Ответ 5
Получить время работы рабочего процесса (рекомендуется):
$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
Чтобы он работал, убедитесь, что у вас есть сценарии и инструменты управления IIS.
Во-вторых, путь использует журнал событий, если включен
Get-Eventlog -LogName system -Newest 1 -Source "WAS" -Message "*recycle of all worker processes in application pool '$poolName'*")
С помощью Get-Eventlog
вы можете использовать аргумент -After/-Before
для дальнейшего ограничения результата.
Чтобы проверить, переработан ли пул приложений в последние минуты "X", можно использовать следующий фрагмент файла 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
}
}