2015-02-10 52 views
0

我不明白將要採取或研究的下一個問題解決步驟是什麼。asp.net崩潰:IIS8請求執行增加並且CPU保持低位

我有一個Web應用程序在一個IIS8網絡服務器上運行。最近我們正在爲Web應用程序的性能而苦苦掙扎。今天早上,網絡應用程序再次「崩潰」。我的意思是它沒有迴應任何新的請求。

由於性能監視器是你的朋友,我發了以下計數器:

  • 處理器時間(%)
  • 請求執行
  • 請求/秒

查看圖像I」包括在內。 enter image description here

我發現interessting只是增加了「Requests Executing」。而且...... CPU沒有100%運轉來擺脫所有這些要求。

由於我是該Web應用程序的主要開發人員,因此我已經優化了許多高CPU網頁。 有了這個SO線程,我希望能找到瓶頸。也許提供額外日誌記錄的提示。應用程序代碼分析等。我可以在需要時提供有關設置或應用程序的更多信息。

希望你能幫上忙。提前謝謝了。

一些規格:

  • 的Windows Server 2012R2
  • IIS8
  • Intel Xeon四核CPU
  • 共有4個演出內存
  • ASP.net 4.0 Web應用程序

用戶規格:

我運行性能監視器:個 之間100-500
  • 正常的請求/秒的平均30
  • 200/300 '峯值' 請求/秒
  • 編輯

    • 谷歌分析實時訪客數據收集設置大約一個小時。正好在網站崩潰的那一刻。我使用工具PAL來分析它。它只有很多關於內存低於5%的警告。 這個記憶問題顯然是我們即將解決的問題。

      我注意到的另一件事是IIS8中「當前請求」的列表非常龐大。它包含數百個「當前請求」。我希望這些請求達到超時值,並向用戶發送請求超時。

      這是當前健康狀況的打印屏幕: enter image description here

      這份名單是無限長。

      而且,我剛剛注意到的另一件事是一個請求花了超過10分鐘(!)向用戶傳遞一個字節[]。 '狀態'是SendResponse。我懷疑這個用戶是在一個低bandwitdh設備。只要這個用戶正在下載 - 一個工作進程被採取。我們應該如何準備這個長期未決的請求?

    +0

    奧克 - 我發現了一個可以啓用的功能,稱爲**「請求監視器」**。 SO-link:http://stackoverflow.com/a/15622626/167196。 我認爲如果啓用該功能,並且能夠查看當前(待定)的請求,則可能會看到導致此問題的原因。 – JonHendrix 2015-02-10 11:42:12

    +0

    因爲我不確定啓用該功能是否會導致重新啓動 - 我等到獲得可接受的時間範圍才能啓用它。 – JonHendrix 2015-02-10 11:43:58

    回答

    0

    看看PAL在https://pal.codeplex.com/ - 這會引導你收集一些統計數據,然後爲你分析它們。

    隨着CPU,其他瓶頸是內存,網絡和磁盤IO。 PAL應該幫助你收集適當的統計數據 - 它有幾個預定義的集合,例如, Web服務器,數據庫服務器等。

    +0

    謝謝你的寶貴答案。我不知道這存在。我會試試看。謝謝。 – JonHendrix 2015-02-10 13:41:55

    +0

    祝你好運!如果您有任何問題,請將它們作爲新問題發佈,或者使用codeplex上的討論選項卡 - 看起來相當活躍。 – 2015-02-10 13:44:52

    +0

    嗨西蒙 - 我編輯了我的帖子。檢測結果。 – JonHendrix 2015-02-11 11:46:51