2011-05-05 88 views
0

我在運行於四核8G機器上的Windows 2008 64位系統上託管基於IIS的Web服務應用程序。當W3WP以7.6G的內存使用率運行時,會遇到幾個實例。包括RDP在內的其他系統都沒有響應。右鍵單擊任務管理器中的進程並創建轉儲,將系統及其所有線程凍結很長時間(接近30分鐘)。當在下班時間發生凍結時,我們讓轉儲運行一段時間(運行接近1小時),但仍然沒有完成轉儲。在得到系統最多的利益,我們不得不殺IIS如何獲取大內存使用率的全內存轉儲

嘗試過其他工具,如procexp,調試診斷等創建完全內存轉儲,並都具有相同的結果

那麼,什麼工具做的社區使用快速抓取轉儲文件?或者沒有凍結所有的線程?我意識到後者可能是一個修辭問題。但是,如果不長時間鎖定系統,生成如此龐大的轉儲文件有哪些選擇?

回答

3

IMO你不應該等到進程內存增長到8 GB。我相信有類似3 - 4 GB的東西,你應該能夠檢測到內存泄漏。

Procdump具有基於存儲器閾

-m內存犯MB閾在其中創建進程的轉儲的選項。

我想你這個選項轉儲過程的內存。

而且SSD還能幫助寫作更快。

+0

謝謝納文。我完全同意 – G33kKahuna 2011-05-05 21:37:37

3

WPA a.k.a xperf(http://msdn.microsoft.com/zh-cn/performance/cc825801.aspx)是一個強大的工具,可用於診斷應用程序。你會得到罪魁禍首的調用堆棧。你不必收集轉儲,它是無創的,並且不會在生產系統中負載太多

完整的逐步信息可在此處獲得。 http://msdn.microsoft.com/en-us/library/ff190906(v=VS.85).aspx

+0

這是一個很好的建議。謝謝。我仍然沒有趕上xperf。你能給我一些在線閱讀建議嗎? – G33kKahuna 2011-05-07 15:07:42