如果 Web 应用程序运行速度较慢或不能正常运行,那么服务器的性能会受影响。此主题介绍了如何监视和调整应用程序,以改善服务器性能。
注意 将设计拙劣的应用程序升级为设计良好的应用程序并进行彻底的测试可以显著地改善服务器性能。然而,请记住,Web 应用程序可能会受后端延迟(如旧系统和远程数据源)的影响。如果开发人员设计的应用程序用于从另一个网站、服务、或服务器获取数据,并且该远程实体出现问题,那么您的服务器可能出现瓶颈,该瓶颈可能是您无法解决的。
可以监视下列性能计数器以判断 Web 应用程序是否在服务器上制造了瓶颈。
如果正在服务器上运行 Active Server Page (ASP) 应用程序,这些计数器可以帮助您判断应用程序的运行状况如何。计数器是作为 ASP 宿主的所有进程的 ASP 性能计数器的总和,无法按进程进行细分。有关 ASP.NET 应用程序性能监视的信息,请参阅 ASP.NET 性能监视。
计数器 | 描述 |
---|---|
Active Server Pages\ Requests/Sec | 排除对静态文件或其他动态内容的请求,并可能随 ASP 页的复杂程度和 Web 服务器的容量而大幅度波动。如果此计数器在服务器上的流量高峰期间较低,则说明应用程序可能引起了瓶颈。 |
Active Server Pages\ Requests Executing | 说明当前正在执行的请求的数量(例如,活动工作线程的数量)。Request Execution Time 可能会有点误导,因为它不是平均值。例如,如果您定期接收到 30 个页面请求[在 10 毫秒 (ms) 内执行],对于每个页面请求来说(在 500 ms 内执行),该计数器可能指示 10 ms,虽然平均执行时间超过 25 ms。很难给出 Requests Executing 的理想值。如果页面执行速度很快并且不等待 I/O(例如,加载文件或进行数据库查询),那么此数字很可能较低(当计算机较忙时和处理器的数量无差别)。如果页面必须等待 I/O,那么执行的页数可能更高(最高为 |
Active Server Pages\ Request Wait Time Active Server Pages\ Request Execution Time |
Request Wait Time 表示最近的请求在队列中等待的时间(以毫秒为单位)。Request Execution Time 表示执行最近的请求所花的时间(以毫秒为单位)。用户的响应时间与 Request Wait Time 加上 Request Execution Time 加上网络等待时间成比例。 |
Active Server Pages\ Requests Queued | 理想的情况下,Requests Queued 和 Request Wait 时间应接近于零,但它们会在不同的负载下时高时低。Requests Queued 的最大值由 |
这些计数器将帮助您判断万维网发布服务(WWW 服务)处理通用网关接口 (CGI)、Internet 服务器 API (ISAPI)、Post,以及 Get 请求的状况。
计数器 | 描述 |
---|---|
WWW serviceCGI Requests/sec WWW service\ ISAPI Extension Requests/Sec |
这些计数器报告服务器处理 CGI 和 ISAPI 应用程序请求的速率。如果负载增大时这些值下降,您可能需要重新设计应用程序。
注意 ASP 是 ISAPI 扩展并包括在第二个计数器中。 |
WWW service\ Get Requests/sec WWW service\ Post Requests/Sec |
这些计数器反映了对服务器进行的这两种常见类型的 HTTP 请求的速率。Post 请求一般用于表单并发送到 ISAPI(包括 ASP)或 CGI。Get 请求构成了从浏览器发出的几乎所有其他请求,并包括对静态文件、ASP 和其他 ISAPI 的请求,以及 CGI 请求。 |
本节不准备详细讨论调整 Web 应用程序的复杂方法,而是提供了改善应用程序性能的一般建议。在计划和测试 Web 应用程序时请考虑以下信息:
相关主题