2011-11-21 64 views
2

我正在爲Windows 2008和IIS 7上運行的網站創建性能計數器,因此這些進程的形式是(即第一個應用程序池的W3WP,第二個應用程序池的W3WP#1,第三個W3WP#2應用程序池等)性能計數器,更改進程ID?

問題是:如果應用程序池被回收或機器重新啓動會發生什麼?相同的流程實例是否會映射到相同的應用程序池,或者它們會更改? (即將w3wp分配給第一個應用程序池,w3wp#1分配給第二個分區,w3wp#2分配給第三個應用程序池,等等)

而且,如果池進程關聯會改變,我們怎麼能繼續監控同一應用程序池,而不必在每次系統回收時重新配置性能計數器?

澄清: 我指的性能計數器不是ASP.Net計數器,它們具有與計數器關聯的應用程序池名稱。

在這裏,我指的是像「Process」這樣的計數器和.Net框架計數器,如「.Net CLR Memory」和「.Net CLR Exception」計數器,它們不使用應用程序池,它們使用進程名稱,這裏是一個例子「\ Process(w3wp)\ Thread Count」是一個性能計數器,它告訴進程w3wp中的線程數量。該進程是其中一個應用程序池的工作進程。 「\ Process(w3wp#1)\ Thread Count」對於另一個池的工作進程是一樣的。

問題是:如果池回收或機器回收,w3wp和w3wp#1是否代表相同的池,如果不是,我們如何保證我們繼續監控我們想要的池而不需要重新配置性能計數器?

+0

到目前爲止,我發現的唯一的事情是,您可以附加進程ID,而不是像W3WP#5212那樣,但是,這仍然不能解決問題。 –

+0

爲什麼不按照IIS使用的技術? –

+0

John有什麼技巧?你能詳細解釋一下嗎? –

回答

1

進程計數器(與ASP.NET,BTW完全沒有任何關係)自然只能在進程的整個生命週期內運行。

+0

過程計數器對於監視應用程序的健康狀況非常重要。 ASP.Net計數器是不夠的! –

+0

我沒有說他們不重要。我說他們只活過程的一生,而且他們並不特定於ASP.NET。 –