2009-11-10 129 views
1

我們有一個非常奇怪的問題。服務器場中的一臺服務器變得非常慢。我們在日誌中看到大量超時,並且總體響應時間不是應該在的位置(並且位於服務器場中的其他服務器上)。Web服務器變慢(ASP.NET)

還有一點奇怪的是,它不僅僅是web應用程序 - 只需登錄到服務器需要1.5分鐘才能顯示桌面。一旦進入系統,系統就會像以前一樣響應 - 除非您嘗試啓動某些內容(即記事本),否則需要一分鐘才能啓動,啓動後它可以正常工作。

我檢查了一些東西 - 內存利用率是合理的,CPU低於15%,窗口句柄,事件日誌不顯示任何東西。

回收aps.net進程無法修復它 - 它仍然需要一分鐘才能登錄。重啓服務器有幫助,但現在它又開始減速。

經過仔細觀察,我們發現Windows Temp目錄中充滿了臨時文件 - 超過65k個文件。這當然是需要照顧的。但我的問題是,它可能是緩慢的根源,還是還有其他潛伏在陰影中的東西?

編輯

更多的挖掘後,我就有關臨時目錄的大小問題歸零英寸這article:描述了非常相似的東西。我仍然不太確定,因爲服務器甚至打開甚至記事本的速度都很慢,這一事實仍不清楚。

在這樣的條件下創建一個新的臨時文件是否有可能花費一分鐘?

+0

爲什麼'Temp'文件夾已滿?它包含什麼樣的文件?這些文件與您的應用程序有關嗎? – 2009-11-10 18:00:01

+0

@Darin出於多種原因,但主要是因爲MS CryptQueryObject中存在已知的錯誤(請參閱http://support.microsoft.com/?id=931908。)。我們在研究這個問題的時候挖掘了這篇文章,但是現在我試圖弄清楚這是否是真正的根本原因 – mfeingold 2009-11-10 18:07:02

+0

您提供的KB表示,當臨時文件數量達到時,對CryptQueryObject的調用花費的時間比預期的要長約65,000。你在調用這個函數嗎? – 2009-11-10 18:11:10

回答

1

好的,這是官方的,所有這些都是由this issue造成的悲傷。當我們的一臺服務器再次表現不佳時,我們清理了臨時目錄並解決了問題,包括緩慢的登錄。

最後這部分仍然令我感到困惑 - 我不明白,在一個臨時目錄中的文件的數量如何過量可引起登錄接管1分鐘,先不談啓動程序,但無論是在清除目錄固定它和我可以和它一起生活。

0

你還檢查虛擬內存嗎?分頁?你的應用程序在不同的文件中記錄了很多數據嗎?另外 - 檢查 - 也許利用率發生在內核模式而不是用戶模式。

+0

是的 - 所有這一切。我們將服務器停止輪換,網絡應用程序沒有任何活動,即使運行該Web應用程序的進程不再存在,但它仍然花費了一分多鐘時間登錄 – mfeingold 2009-11-10 17:58:08

1

您可能想要檢查超時發生時您在ASP.NET線程池中使用的線程數。另一個想法可能是查看perfmon中的GC信息並查看GC是否正在運行gen2集合?

+0

我們檢查了線程數和身體)以及GC統計數據。它們在壞服務器和好服務器之間非常相似。除此之外沒有任何.NET相關說明服務器緩慢在網絡應用程序關閉後 – mfeingold 2009-11-10 18:09:25

+0

可能值得詢問/移動到服務器故障 – 2009-11-10 20:47:43