Iis

使用 IIS 8 緩慢提供靜態文件

  • February 20, 2015

我們在 Windows Server 2012 上託管一個 ASP.Net MVC Web 應用程序,它通過 HTTPS 執行。大多數時候一切都很好而且很快,但是我們注意到大約有五分之一的靜態文件(例如圖像、javascript)請求需要幾秒鐘才能完成。一些動態頁面也需要一段時間才能完成,但有時這是意料之中的(例如執行複雜的數據庫查詢),儘管並非總是如此。

我們在 IIS 8 中的網站上設置了失敗的請求跟踪,並設置了一個規則來記錄任何超過 2 秒的內容。我們每分鐘大約生成一個日誌文件,並且沒有我可以辨識的模式 - 例如,它並不總是相同的靜態文件。

在下面的範例中,對 20kb PNG 圖像的請求需要 2,215 毫秒才能完成。我的理解是,這不取決於使用者的連接速度,而這只是伺服器處理請求所花費的時間(如果我錯了,請糾正我)。

我不明白為什麼性能視圖只為每個項目顯示 0ms。同樣,在緊湊視圖中,所有時間都完全相同。這意味著無法查看請求的哪一部分正在減慢速度。我的假設是“性能視圖”中所有數字的總和將等於“所用*時間”*數字。是否有我失踪的原因可能不是這種情況?

以防萬一,這是一個 Amazon EC2 實例,其圖像文件儲存在 SSD 支持的 EBS 卷上。伺服器上的 CPU 負載穩定在 10-20%。

截圖 1 截圖 2

我敢打賭,這些是來自移動設備的請求,來自 FRT 的 Perf View 沒有顯示任何內容,因為這些請求卡在發送字節的 IIS 上,而不是在 FRT 中列出的任何模組/事件中。

查看您是否可以在 IIS、msdn 文件的“目前請求”視圖中擷取其中一個,或者查看 IIS 日誌,獲取一堆緩慢的請求以及who.is幾個 IP。奇怪的是它們來自移動提供商。

這是一個 asp/c# 應用程序?您可以在 C:\Windows\System32\Logfiles\HTTPERR 中檢查 IIS 錯誤,並在 w3c 日誌中檢查時間。

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