IIS 之 應用程序池

  IIS(Internet Information Services),因爲我使用的是Windows10系統,因此本文以其內置 10.0.14393.0 版本說明。api

  應用程序池 → 右鍵(待設置應用程序池)→ 高級設置,以下圖:緩存

  

  一、常規,以下圖:

  

  1.1 .NET CLR 版本服務器

  [managedRuntimeVersion] 配置應用程序池,以加載特定版本的 .NET CLR。選定的 CLR版本應與應用程序所使用的相應版本的 .NET Framework 對應。選擇「無託管代碼」將致使全部的 ASP.NET 請求失敗。網絡

  [1] v4.0 或 V2.0 ; [2] 無託管代碼;app

  1.2 隊列長度ide

  [queueLength] HTTP.sys 將針對應用程序池排隊的最大請求數。若是隊列已滿,新請求將收到 503「服務不可用」的響應。默認隊列長度設置是1000,範圍在10-65535 之間。性能

  1.3 名稱操作系統

  [name] 應用程序池名稱是應用程序池的惟一標識符。3d

  1.4 啓動模式調試

  [startMode] 將應用程序池配置爲在按需運行模式或始終運行模式下運行。

  [1] OnDemand;[2]AlwaysRunning;

  1.5 啓用 32 位應用程序

  [enable32BitAppOnWin64] 若是針對 64 位操做系統上的應用程序池將該屬性設爲 True,則爲應用程序池提供服務的工做進程將處於 WOW64 (Windows on Windows64)模式。WOW64模式下的進程是僅加載 32 位應用程序的 32 位進程。

  1.6 託管管道模式

  [managedPipelineMode] 將 ASP.NET 配置成做爲 ISAPI 擴展並以經典模式來運行。在後一種狀況下,託管代碼集成到請求處理管道中。

  [1] Classic;[2] Integrated;

  二、CPU,以下圖:

  

  2.1 處理器關聯掩碼

  [smpProcessorAffinityMask] 強制此應用程序池的工做進程在特定 CPU 上運行的十六進制掩碼。若是啓用了處理器關聯,則值 0 將致使錯誤。

  2.2 處理器關聯掩碼(64位選項)

  [smpProcessorAffinityMask2] 爲64位計算機制定強制此應用程序池的工做進程在特定 CPU 上運行的高順序 DWORD 十六進制掩碼。在 64 位計算機上,smpProcessorAffinityMask 特性包含處理器掩碼的低順序 DWORD ,而 smpProcessorAffinityMask2 特性包含處理器掩碼的高順序 DWORD。

  2.3 限制(百分比)

  [limit] 配置容許應用程序池中的工做進程在" CPU 限制間隔 "屬性指示的時間段內使用的 CPU 時間的最大百分比。若是超過「 CPU 限制 」屬性設置的限制,系統將向事件日誌寫入一個事件,而且可能觸發一組可選事件(由「CPU 限制操做」屬性決定)。若是將此屬性的值設爲 0 ,將禁止將工做進程限制爲 CPU 時間的百分比。

  2.4 限制操做

  [action] 若是設置爲"NoAction",將生成一個事件日誌條目。若是設置爲「KillW3WP」,則將在重設間隔期間關閉應用程序池並生成一個事件日誌條目。若是設置爲「 Throttle 」,則 CPU 使用率將限制爲限制中設置的值。不使用限制間隔,而且生成一個事件日誌條目。若是設置爲「 ThrottleUnderLoad 」,則只有在爭用 CPU 時,才限制 CPU 使用率。不使用限制間隔,而且生成一個事件日誌條目。

  [1] NoAction; [2] KillW3WP; [3] Throttle; [4] ThrottleUnderLoad;

  2.5 限制間隔(分鐘)

  [resetInterval] 指定用於應用程序池的 CPU 監視和限制的重設期限(以分鐘爲單位)。若是自上次進程計賬重設以來所通過的分鐘數等於此屬性指定的分鐘數,IIS 將重設日誌和限制間隔的 CPU 計時器。將此屬性的值設爲 0 將禁用 CPU 監視。

  2.6 已啓用處理器關聯

  [smpAffinitized] 若是設爲 True ,「處理器關聯掩碼」屬性會強制爲此應用程序池提供服務的工做進程在特定的 CPU 上運行。這樣即可以在多處理服務器中有效使用 CPU 緩存。

  三、回收,以下圖:

  

  3.1 發生配置更改時禁止回收

  [disallowRotationOnConfigChange] 若是爲 True,應用程序池在發生配置更改時將不會回收。

  3.2 固定時間間隔(分鐘)

  [time] 一個時間段(以分鐘爲單位),超過該時間後,應用程序池將回收。值爲 0 意味着應用程序池不會按固定間隔回收。

  3.3 禁止重疊回收

  [disallowOverlappingRotation] 若是爲 True ,將發生應用程序池回收,以便在建立另外一個工做進程以前退出現有工做進程。若是工做進程加載不支持多個實例的應用程序,請將該屬性設爲True。

  3.4 請求限制

  [requests] 應用程序池在回收以前能夠處理的最大請求數。若是值爲0,則表示應用程序池能夠處理的請求數沒有限制。

  3.5 生成回收事件日誌條目

  [logEventOnRecycle] 每發生一次指定的回收事件時便生成一個事件日誌條目。

  3.5.1 ISAPI 報告了非正常狀態

  [IsapiUnhealthy] 若是爲True,則當應用程序池因爲 ISAPI 擴展將其自身報告爲非正常而進行回收時,系統將生成一個事件日誌條目。

  3.5.2 超出請求限制

  [Requests] 若是爲 True,則當應用程序池在超出其請求限制後進行回收時,系統將生成一個事件日誌條目。

  3.5.3 超出虛擬內存限制

  [Memory] 若是爲True,則當應用程序池在超出其虛擬內存限制後進行回收時,系統將生成一個事件日誌條目。

  3.5.4 固定時間間隔

  [Time] 若是爲True,則當應用程序池按計劃的間隔進行回收時,系統將生成一個事件日誌條目。

  3.5.5 手動回收

  [OnDemand] 若是爲True,則當手動回收應用程序池時,系統將生成一個事件日誌條目。

  3.5.6 特定時間

  [Schedule] 若是爲True,則當應用程序池在計劃的時間進行回收時,系統將生成一個事件日誌條目。

  3.5.7 已超出專用內存限制

  [PrivateMemory] 若是爲True,則當應用程序池在超出其專用內存限制後進行回收時,系統將生成一個事件日誌條目。

  3.5.8 應用程序池配置已更改

  [ConfigChange] 若是爲True,則當應用程序池因爲其配置發生更改而回收時,系統將生成一個事件日誌條目。

  3.6 特定時間

  [schedule] 應用程序池進行回收的一組特定的本地時間(24小時制)。

  3.7 虛擬內存限制(KB)

  [memory] 工做進程可使用的最大虛擬內存量(以 KB 爲單位),超過此內存量,將致使應用程序池回收。若是值爲 0 ,則表示沒有限制。

  3.8 專用內存限制(KB)

  [privateMemory] 工做進程可使用的最大專用內存量(以 KB 爲單位),超出此內存量,將致使應用程序池回收。若是值爲0,則表示沒有限制。

  四、進程孤立,以下圖:

  

  4.1 可執行文件

  [orphanActionExe] 當工做進程被廢棄(孤立)時運行的可執行文件。例如,「C:\dbgtools\ntsd.exe」將調用 NTSD 來調試工做進程故障。

  4.2 可執行文件參數

  [orphanActionParams] 當工做進程被廢棄(孤立)時所運行的可執行文件的參數。例如,若是 NTSD 是爲調試工做進程故障而調用的可執行文件,則「-g -p %1%」適用。

  4.3 已啓用

  [orphanWorkerProcess] 若是設爲True ,則無響應的工做進程將被廢棄(孤立),而不是終止。可使用此功能來調試工做進程故障。

  五、進程模式,以下圖:

  

  5.1 Ping 間隔(秒)

  [pingInterval] 兩次向爲此應用程序池提供服務的工做進程發送健康情況監視 ping 所間隔的時間段(以秒爲單位)。

  5.2 Ping 最大響應時間(秒)

  [pingResponseTime] 爲工做進程指定的、響應健康情況監視 ping 的最長時間(以秒爲單位)。若是工做進程不響應,將被終止。

  5.3 標識

  [identityType, username, password] 配置應用程序池以做爲內置帳戶或特定的用戶標識運行,內置帳戶也就是「應用程序池標識」(推薦)、「網絡服務」、「本地系統」、「本地服務」。

  5.4 關閉時間限制(秒)

  [shutdownTimeLimit] 爲工做進程指定的、完成處理請求並關閉的時間段(以秒爲單位)。若是工做進程超過關閉的時間限制,將被終止。

  5.5 加載用戶配置文件

  [loadUserProfile] 此設置指定 IIS 是否爲應用程序池標識加載用戶配置文件。當此值爲 True 時,IIS爲應用程序池標識加載用戶配置文件。若是您須要像 IIS 6.0 那樣不爲應用程序池標識加載用戶配置文件,則此值設置爲 false。

  5.6 空閒超時操做

  [idleTimeoutAction] 達到空閒超時持續時間後要執行什麼操做。

  5.7 啓動時間限制(秒)

  [startupTimeLimit] 爲工做進程指定的、啓動並進行初始化的時間段(以秒爲單位)。若是工做進程初始化時間超過啓動時間限制,將被終止。

  5.8 啓用 Ping

  [pingingEnabled] 若是爲 True,系統將按期對爲此應用程序池提供服務的工做進程執行ping 操做,以確保這些工做進程仍及時響應。此過程稱爲健康情況監視。

  5.9 生成進程模型時間日誌條目

  [logEventOnProcessModel] 爲每次發生的指定進程模型事件生成一個事件日誌條目。

  5.9.1 空閒超時已到

  [IdleTimeout] 若是爲 True,則當應用程序池在超出其空閒時限制後關閉時,系統將生成一個事件日誌條目。

  5.10 閒置超時(分鐘)

  [idleTimeout] 工做進程在關閉以前能夠保持閒置狀態的時間(以分鐘爲單位)。若是某個工做進程既未處理請求,也未收到任何新的請求,則將進入閒置狀態。

  5.11 最大工做進程數

  [maxProcesses] 可用來處理對應程序池的請求的最大工做進程數。若是此數字大於 1,則應用程序池爲「Web 園」。在 NUMA 感知系統上,若是此數字爲 0,則爲得到最佳性能,IIS 將啓動與 NUMA 節點同樣多的工做進程。

  六、快速故障防禦,以下圖:

  

   6.1 「服務不可用」響應類型:

  [LoadBalancerCapabilities] 若是設爲 HttpLevel,那麼當應用程序池中止時, HTTP.sys 將返回 HTTP 503 錯誤。若是設爲 TcpLevel,HTTP.sys 將重置鏈接。若是負載平衡器識別其中一種響應類型,並隨後重定向該類型,則此設置很是有用。

  6.2 故障間隔(分鐘)

  [rapidFailProtectionInterval] 應用程序池發生指定數量的工做進程崩潰(最大故障數)的最短期間隔(以分鐘爲單位)。若是低於此間隔,應用程序池將被快速故障防禦功能關閉。

  6.3 關閉可執行文件

  [autoShutdownExe] 當應用程序池被快速故障防禦功能關閉時所運行的可執行文件。可使用它來配置負載平衡器,將此應用程序池的通訊重定向至其餘服務器。

  6.4 關閉可執行文件參數

  [autoShutdownParams] 當應用程序池被快速故障防禦功能關閉時運行的可執行文件的參數。

  6.5 已啓用

  [rapidFailProtection] 若是設爲 True,則當在指定的時間段(故障間隔)內出現指定數量的工做進程崩潰(最大故障數)的狀況時,應用程序池將被關閉。默認狀況下,若是在5分鐘的間隔內發生5次崩潰,應用程序池將被關閉。

  6.6 最大故障數

  [rapidFailProtectionMaxCrashes] 應用程序池被快速故障防禦功能關閉以前容許的最大工做進程崩潰數。

相關文章
相關標籤/搜索