软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试技术>>WEB测试>>正文
终极优化(2):使用 IIS 5.0 调整 Web服务器的艺术与科学
文章出处:转载 作者:先锋站长 发布时间:2006-02-07
调整 web 应用程序

  iis 5.0 对于服务静态 html 网页及配上默认的设置值基本就已足够了。如果您的站点主要是静态内容,则许多性能问题可能会与硬件有关。iis 5.0 为 web 应用程序提供不错的性能,但若想获得最佳的性能,还需要一些额外的调整。当然,不管服务器软件如何增强,与 web 应用程序设计及程序代码有关的最佳经验方法的问题依然会存在。虽然本文没有试图讨论调整 web 应用程序的细节,但本节仍提供一些使它们执行更快的指导及建议。在规划及测试您的 web 应用程序时,请先考虑下列事项,然后再到实际联机运行的服务器上执行它们。

  第一,isapi 应用程序比 active server pages (asp) 应用程序执行得更快,虽然 asp 的开发费用远比 isapi 低。这两种应用程序都比 cgi 应用程序执行得更快。

  第二,因为静态文件不会有动态文件才有的处理负载,或引起磁盘活动,所以您应该尽可能使用它们。除了使用静态文件外,您的应用程序应尽可能将处理负载推到客户端,以避免网络等待时间。如此也能节省服务器端的资源,并让更新在很段时间内完成。有个常用的范例是加一个客户端的小程序代码,来检查电子邮件地址组成是否正确。

  另一个技巧是确定在您的实际上线运行服务器上已关闭 asp 的侦错功能。如果启用侦错,则必须将 appallowdebugging metabase 属性设为 false。相关信息,请参阅〈附录 1︰性能设置〉。

  尽可能地为所有图像及 html 设置「过期」标题,让它们可以存放在客户端的缓存中。相关信息,请参阅本文中的〈调整及疑难排除的建议〉小节。

  如果 microsoft visual basic_ 对象是以 apartment 线程处理的(非 java 或大部分 c++ 对象),请从「asp 应用程序及有效期」状态中删除它们。

  只有在必要时才使用 secure sockets layer (ssl)。使用 https 通讯协议比使用标准 http 贵很多。请确定传送中的信息 (可能是敏感资料如信用卡号) 的价值是否值得您付出增加的费用。安全性调整问题的相关信息,请参阅本文中的〈安全性〉小节。

  进程隔离也会影响 web 应用程序的性能。iis 5.0 web 应用程序默认是在进程外的缓冲池 (中度保护) 中执行。接受进程隔离对性能的影响总比冒着服务器停机或资料遗失的风险来的安全,例如因应用程序当机而破坏它与 iis 5.0 共享的 ientinfo 进程时就会导致这些风险。有关这个主题的深入讨论,请参阅本文中的〈进程隔离〉小节。

  若要增进生产环境中的数据库驱动性能,请使用 microsoft sql server。由于 iis 及 sql server 在足够的内存下执行的情况最好,因此请尝试将资料库存放在不同于 web 服务的服务器上。在这种情况下,经由网络跨计算机通讯通常比单一计算机上的通讯还快。当 sql server 及 iis 存放在同一台服务器上时,就会经常因为内存不足或循环不够而导致性能降低。此外,请务必建立及维护适当的索引。如此才能最小化数据库查询的输入和输出。最后一点,请尽量多利用被存储的过程(stored procedured)。它们比设计来执行相同工作的 asp 脚本文件所需的执行时间更少,而且更容易撰写。

  一般来说,如果您有个超过 100 行 (使用 #include 指令来计算添加文件中的程序代码行数) 的 asp 脚本文件,请考虑建立一个 com+ 组件来提供相同的功能。如果能撰写得很有效率,并且经过正确地的测试,则 com++ 组件可以为同一动态页提供 20 到 30 倍处理一个脚本文件的速度。使用 #includes 测量 asp 脚本文件最简单的方式是将扩展名从 .asp 改为 .stm,并使用您的浏览器开启 .stm 檔。您的浏览器会显示此 .asp 文件,以及来自该已包含文件(included file)中的程序代码。

  若要最佳化动态网络应用程序的性能,很重要的一项工作是让您的应用程序正式在站点上启用前,先测试它们。执行这项工作有个很好用的工具--web application stress (was) 工具,您可以从 microsoft web application stress tool 站点 下载它。在这个站点上还包括专为此工具提供的教学指南及知识库。was 也内含在 windows 2000 resource kit 附随 cd 上。本 cd 上亦有。
测量网站服务器及应用程序所需工具的相关信息,请参阅本文中的〈用来监视及测试服务器性能的工具〉小节。如需网络应用程序性能及测试该性能所需工具的链接及参照清单,请参阅本文中的〈资源〉小节。
监视及测试服务器性能的工具

  为了支持您的性能调整及测试需求,microsoft 提供几个工具︰有些内含在 windows 2000 及 iis 5.0 中、有些位于 windows 2000 resource kit cd中,剩下的内容则可从 microsoft 网站下载。「系统监视器」(先前称为 perfmon) 内建在 windows 2000 中,它对于监视服务器的各种性能而言是必要的。「进程及线程状态」(pstat.exe) 会显示所有执行中的进程及线程的状态。「进程树状目录」(ptree.exe) 可让您查询进程的继承树状目录,及删除本机或远程计算机上的进程。这些工具都提供在 windows 2000 server resource kit 附随 cd 上。提供在 windows 2000 resouce kit 附随 cd 上的「http 监视工具」会监视服务器上的 http 活动,而且会在活动容量发生改变时通知您。「网络监视器」是个您可以用来维持固定网络传输量的 windows 2000 管理工具。它不包含在默认安装中,不过使用 [控制面板] 的 [添加/删除程序] 功能可以安装它。netstat 是个指令行工具,会侦测关于服务器目前网络连接的信息。

  这些工具的中心是内建在 iis 5.0 及 windows 2000 操作系统中的「性能计数器」。开发人员也可以在他们编写的 isapi dlls 或 com 组件中添加自定义的的「性能计数器」。这些计数器可以由以上提到的一些工具直接读取,包括「系统监视器」及「web 应用程序压力工具」和 wcat。其中有些计数器在本文前面已作过说明,但了解哪些会关系到您的监视及测试需求是很重要的。

  「系统监视器」是一个在web服务器上建立性能基准,并监视您对软硬件所作的任何改变,对性能将产生哪些影响的最重要工具。「系统监视器」提供一个用户接口,让您在监视或记录时能看见性能计数器的指数。它也能让您以图形方式记录计数器活动,并设置将出现在 [事件查看器] 中的警告。「系统监视器」提供系统中每一计数器的记录。

  「web 应用程序压力」工具是专门为了仿真多个浏览器同时向一个网站送出网页请求而设计的。您可以使用这个工具来收集关于 web 应用程序性能及稳定性的信息,以及服务器执行状况的信息。这个工具可以仿真利用少数的客户端机器向 web 服务器送出大量的请求时的状态。其目的是为了建立一个与生产环境尽可能相似的环境。如此才能让您在将 web 服务器及应用程序部署到联机运行的服务器上之前,先找出并消除其中存在的问题。

  以上任一工具的相关信息,请参阅内含在 windows 2000 resource kit 中的联机iis 5.0 文件。指向其它信息来源的链接则内含在本文的〈资源〉小节中。

站内搜索
相关文章
◎终极优化(1):使用 IIS 5.0 调整 Web服务器的艺术与科学
◎IT 架构和应用程序的端到端测试(3)
◎IT 架构和应用程序的端到端测试(2)
◎IT 架构和应用程序的端到端测试(1)
◎JWebUnit为Web应用程序创建测试用例的办法二
◎JWebUnit为Web应用程序创建测试用例的办法一
◎ASP.NET负压测试
◎Web测试工具对比--自动化功能测试(2)
◎Web测试工具对比--自动化软件测试(1)
◎Web的系统测试方法
◎web扫盲专题之入门概念
◎解决WEB性能测试中的验证码问题
◎你必须学会的几个常用网络测试命令
◎StrutsTest使用
◎基于嵌入式WEB的网络视频监控系统的设计与实现
◎分析数据库死锁原因的方法
◎Web下的整体测试
◎端口大全
◎网站测试技术简介
◎服务器加速技术一览
◎巧用net命令进行局域网文件批量同步更新篇
◎编写高性能WEB 应用程序的10 个技巧
◎主流七款web服务器软件点评(二)
◎主流七款web服务器软件点评(一)
◎巧用Behaviors检测浏览器
◎Web测试方法
◎基于Web的系统测试
◎Web体系结构发展规划
◎功能测试用例的书写方式
◎Web 测试的经验
◎使用Sql生成测试数据
◎对Web服务进行压力测试
◎使用HttpUnit进行集成测试
◎web应用程序测试方法和测试技术详述
◎Web应用程序的整体测试
热门文章
◎C/S和B/S的比较
◎Web测试方法
◎你必须学会的几个常用网络测试命令
◎压力测试实例
◎web应用程序测试方法和测试技术详述
◎web测试技术经典案例
◎网站测试技术简介
◎Web下的整体测试
◎功能测试用例的书写方式
◎端口大全
◎Web 测试的经验
◎强大的Web开源测试工具—Selenium
◎Web的系统测试方法
◎测试基于Web的应用程序
◎Client/Server测试
◎分析数据库死锁原因的方法
◎主流七款web服务器软件点评(一)
◎Web测试工具对比--自动化软件测试(1)
◎如何从用户的角度来测试Web应用软件
◎Web测试工具对比--自动化功能测试(2)
◎使用HttpUnit进行集成测试
◎Web应用程序的整体测试
◎对Web服务进行压力测试
◎基于Web的系统测试
◎如何测试web网站?
◎ASP.NET负压测试
◎web扫盲专题之入门概念
◎站点测试 Web Testing
◎使用Sql生成测试数据
◎主流七款web服务器软件点评(二)
◎Web测试手段
◎用webload进行web application性能测试(一)
◎基于嵌入式WEB的网络视频监控系统的设计与实现
◎测试Web Application之一:准备团队
◎解决WEB性能测试中的验证码问题
◎编写高性能WEB 应用程序的10 个技巧
◎评估网络测试的价值
◎StrutsTest使用
◎用webload进行web application性能测试(二)
◎网站测试技术
◎嵌入式Web视频点播系统实现方法
◎测试Web Application之三:进攻
◎巧用net命令进行局域网文件批量同步更新篇
◎测试Web Application之二:准备作战
◎开源Web自动化测试框架——Watir试用手记
◎Web体系结构发展规划
◎IT架构和应用程序的端到端测试
◎WEB应用程序的测试与优化
◎WEB测试资料
◎终极优化(1):使用 IIS 5.0 调整 Web服务器的艺术与科学

Google提供的广告