Windows

IIS 7.5 中應用程序池的 CPU 限制

  • April 3, 2012

我看到在 iis 7.5 中,我可以為應用程序池設置指定時間內的CPU 百分比使用率限制。如果違反此限制,我也可以讓它殺死工作程序。如果告訴它這樣做,worker程序被殺死後會自動重啟,還是需要人工干預?

在 Stack Overflow上提到可以在間隔完成時重新啟動……

這看起來像是模擬(或原始碼訪問…>sigh<)可能是以任何程度的信心查看行為的唯一方法之一。

CPU 配額回收的事件日誌條目的文件關於回收的討論如下:

預設情況下,應用程序池回收是重疊的,這意味著要關閉的工作程序會一直執行,直到啟動新的工作程序。在一個新的工作程序啟動後,新的請求被傳遞給它。舊的工作程序在完成其現有請求的處理後或在配置的超時後關閉,以先到者為準。這種回收方式可確保為客戶提供不間斷的服務。但是,如果應用程序池中的應用程序一次不能執行多個自身實例,則可以禁用重疊輪換。

在我看來,根據定義,由於 CPU 消耗過多而終止工作程序意味著不允許完成待處理的請求(因為它們正在耗盡 CPU 配額)。

談談你最關心的問題:我沒有看到任何讓我相信新的工作程序不會自動啟動的東西。您的 Stack Overflow 連結中的聲明確實讓我質疑 IIS 使用的算法實際上是否可以將回收與用於測量 CPU 配額耗盡的計時器的解析度聯繫起來。我知道的最好的確定方法是編寫一個 CPU 浪費的伺服器端組件,將其部署到測試環境中,然後查看其回收行為的行為方式。一個簡單的組件,在一個緊密的循環中停留幾秒鐘,然後返回一個已知的字元串,再加上一個執行測試工具的客戶端,比如一個並行的“wget”程序池,這可能就足夠了。

引用自:https://serverfault.com/questions/165608