IIS(Internet Information Services),由於我使用的是Windows10系統,所以本文以其內置 10.0.14393.0 版本說明。
應用程序池 → 右鍵(待設置應用程序池)→ 高級設置,如下圖:
1、常規,如下圖:
1.1 .NET CLR 版本
[managedRuntimeVersion] 配置應用程序池,以加載特定版本的 .NET CLR。選定的 CLR版本應與應用程序所使用的相應版本的 .NET Framework 對應。選擇“無托管代碼”將導致所有的 ASP.NET 請求失敗。
[1] v4.0 或 V2.0 ; [2] 無托管代碼;
1.2 隊列長度
[queueLength] HTTP.sys 將針對應用程序池排隊的最大請求數。如果隊列已滿,新請求將收到 503“服務不可用”的響應。默認隊列長度設置是1000,范圍在10-65535 之間。
1.3 名稱
[name] 應用程序池名稱是應用程序池的唯一標識符。
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;
2、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、回收,如下圖:
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、進程孤立,如下圖:
4.1 可執行文件
[orphanActionExe] 當工作進程被廢棄(孤立)時運行的可執行文件。例如,“C:\dbgtools\ntsd.exe”將調用 NTSD 來調試工作進程故障。
4.2 可執行文件參數
[orphanActionParams] 當工作進程被廢棄(孤立)時所運行的可執行文件的參數。例如,如果 NTSD 是為調試工作進程故障而調用的可執行文件,則“-g -p %1%”適用。
4.3 已啟用
[orphanWorkerProcess] 如果設為True ,則無響應的工作進程將被廢棄(孤立),而不是終止。可以使用此功能來調試工作進程故障。
5、進程模式,如下圖:
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、快速故障防護,如下圖:
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] 應用程序池被快速故障防護功能關閉之前允許的最大工作進程崩潰數。