Подтвердить что ты не робот

Как проверить последний пул приложений

Можно ли проверить, когда я повторно использовал пул приложений в последний раз, я хочу проверить дату, когда мой пул приложений был в последний раз переработан, есть ли что-нибудь в IIS, я могу получить эту информацию.

4b9b3361

Ответ 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
    }
}