end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

windows server 2016 に付属の iis 10 アプリケーションプールを power shell でリサイクル

https://docs.microsoft.com/en-us/powershell/module/webadminstration/restart-webapppool?view=winserver2012-ps

上記によれば

IIS:\>Restart-WebAppPool DefaultAppPool

で実行できるらしい。

ちなみに、再起動と、リサイクルの違いは以下。

再起動
  既存 worker process の停止
  新規 worker process の開始

Recycle
  新規 worker process の開始 (以降新規 session はこちらを利用)
  既存 session すべて終了後、もしくは一定時間経過後 worker process の停止

PowerShellによる詳細な手順は、以下に通り

#### WebAdministration モジュール インポート
PS C:\Users\Administrator> Import-Module WebAdministration
PS C:\Users\Administrator> cd iis:\
PS IIS:\> ls

Name
----
AppPools
Sites
SslBindings


PS IIS:\> cd AppPools
PS IIS:\AppPools> ls
Name                     State        Applications
----                     -----        ------------
DefaultAppPool           Started      Default Web Site

PS IIS:\AppPools\DefaultAppPool\> ls

Name
----
WorkerProcesses

#### IISのプロセスID確認
PS IIS:\AppPools\DefaultAppPool\> ls WorkerProcesses

Process  State      Handles  Start Time
Id
-------- -----      -------  ----------
2708     Running    332      2020/12/22 6:47:19


#### IISのCPUやメモリ使用量を確認
PS IIS:\AppPools> Get-Process -id 2708
PS C:\Users\Administrator> Get-Process

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    243      16     4592      20624       0.03   3084   1 conhost
   <略>
    332      39     6584      21488       0.11   2708   0 w3wp
    <略>
    147      10     2620       8984       0.00   3768   0 WmiPrvSE

PS IIS:\AppPools\DefaultAppPool\WorkerProcesses\> Get-Process -id 3796
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    339      42     6684      21544       0.11   3796   0 w3wp

PS IIS:\AppPools\DefaultAppPool\WorkerProcesses\> Get-Process -name w3wp
Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    339      42     6684      21544       0.11   3796   0 w3wp


#### アプリケーション プールのリサイクル
PS IIS:\AppPools> ReStart-WebAppPool DefaultAppPool


#### その他、参考情報として、アプリケーション プールの停止、開始
PS IIS:\AppPools> Stop-WebAppPool    DefaultAppPool
PS IIS:\AppPools> Start-WebAppPool   DefaultAppPool


#### 更に、その他、参考情報として、アプリケーション プールの詳細情報
PS IIS:\AppPools> Get-ItemProperty IIS:\AppPools\DefaultAppPool | Select *

name                        : DefaultAppPool
queueLength                 : 1000
autoStart                   : True
enable32BitAppOnWin64       : False
managedRuntimeVersion       : v4.0
managedRuntimeLoader        : webengine4.dll
enableConfigurationOverride : True
managedPipelineMode         : Integrated
CLRConfigFile               :
passAnonymousToken          : True
startMode                   : OnDemand
state                       : Started
applicationPoolSid          : S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415
processModel                : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
recycling                   : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
failure                     : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
cpu                         : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
environmentVariables        : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
workerProcesses             : Microsoft.IIs.PowerShell.Framework.ConfigurationElement
ItemXPath                   : /system.applicationHost/applicationPools/add[@name='DefaultAppPool']
PSPath                      : WebAdministration::\\WIN-ALDOJI9921O\AppPools\DefaultAppPool
PSParentPath                : WebAdministration::\\WIN-ALDOJI9921O\AppPools
PSChildName                 : DefaultAppPool
PSDrive                     : IIS
PSProvider                  : WebAdministration
PSIsContainer               : True
Attributes                  : {name, queueLength, autoStart, enable32BitAppOnWin64...}
ChildElements               : {processModel, recycling, failure, cpu...}
ElementTagName              : add
Methods                     : {Start, Stop, Recycle}
Schema                      : Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema