除了可以從IIS日志中發現性能問題,還可以用它來尋找可改進的目標。例如:有沒有404錯誤?是否存在大量的304請求?是否存在大量重復請求?
1、當發現有404響應時,我們應該分析產生404的原因:
a、是用戶輸入錯誤的URL地址嗎?
b、還是開發人員引用不存在的資源文件?
如果是后者,就應該盡快移除無效的引用,因為404響應也是一個頁面響應,而且它們也會占用網絡傳輸時間,尤其是這類請求不能緩存,它會一直出現,浪費網絡資源。
2、如果發現有大量的304請求也應該仔細分析:
a、是由于ASP.NET緩存響應而產生的304請求嗎?
b、還是請求靜態資源文件時產生的304請求?
如果是后者,則有可能與瀏覽器的設置有關,也有可能與IIS設置有關。
3、IIS有個【啟用內容過期】功能,可用來在輸出響應時設置緩存頭,減少請求數量。此功能對靜態文件有用,ASP.NET處理的結果則不受影響。我們可以用這樣的查詢來分析頁面的加載頻率:
selecttop20csUriStem,count(*)AS[count],
avg(timeTaken)ASavg_timeTaken,max(timeTaken)ASmax_timeTaken
fromMyMVC_WebLogwith(nolock)
wherecsUriStemlike'/Pages/%'
groupbycsUriStem
orderby2desc
4、如果發現有大量的重復請求,也需要再仔細分析:
a、請求的響應內容是否隨著不同的參數而各不相同?
b、請求的URL是固定的,響應內容也是極少變化的。
如果是后者,則可以考慮使用頁面緩存功能。例如:ASP.NET的OutputCache.