除了可以从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.