了解新网站运行情况的一种行之有效的方法是将它连接到一个性能监控服务,然后对它执行一个分布式负载测试。负载测试有很多种,但主要分成两类:合成负载测试和分布式负载测试。合成负载测试通常会使用一个数据中心或某一地理位置处的一个或一组服务器,它们会同时向网站或应用程序发送请求,测试它在负载下的运行状况。分布式负载测试则是将多个有不同浏览器配置的服务器分布在全国或世界各地,然后将真实的流量“回放”到一个新Web应用程序上。有许多方法可以收集这些记录,但是我们通常可以分析Web服务器的访问日志,确定应该从浏览器请求应用程序的哪些URL。由于多个服务器同时发出请求,所以它可以模拟真实用户从不同地理位置的不同网络、浏览器和操作系统发出请求。在访问一个新创建的Web应用程序时,真实用户的行为和配置几乎是不可预测的。然而,模拟环境越接近真实用户的情况,压力测试就越准确。压力测试可以很好地反映出Web应用程序在极限情况下的运行状态,并且与空闲情况形成对比。
假设到医生那里检査身体。当你坐在医生办公室时,状态是完全放松的,这时血压可能比较低,呼吸也很正常,心跳频率也很不错。但是,加里医生让你走上后再测量相同的指标。那么结果就会完全不一样,而且可能医生会建议你不要参加下周末的徒步旅行活动,而是待在家里放松身心。网站的性能测试也是一样的,如果不知道网站在极端情况下的运行情况,就无法预测出网站在高峰时段的运行状态。
压力测试的重要价值体现在
它可以发现一些正常负载情况下不可能出现的错误;
它可以帮助完成容量规划;
它可以设定测量历史性能趋势的基线。
日志
在压力测试之后,査看应用程序和Web服务器的日志,就可以获得大量宝贵的信息,特别是由压力测试产生的错误。了解这些错误发生的原因,我们就可以避免高峰时段出现惨痛故障。压力测试可以暴露Web应用程序和数据存储中深藏的问题,或者让它们完全崩溃。Logstash等开源工具允许Web开发人员和运维工程师査看错误信息,以及将错误信息与一些事件相关联,如页面响应时间峰值。
为什么压力测试如此之重要?当一个知名公司发布一个新产品、新特性、新网站或新应用程序时,整个世界都会关注它。在这些情况中新产品的成功或失败都会对公司产生重大影响。MobilemeI就是一个鲜活的例子:当Mobileme第一次发布时,它的服务仅仅支撑了一两周时间,这段时间苹果的团队没有离开过办公室,他们在不停地解决问题。虽然苹果公司有很多好产品,但是这一次他们对于服务的信心并不足,所以这次也影响了用户对于这个服务和苹果其他在线服务的信心。
对于一些公司而言,产品发布失败也有一样的结果。在一个创业公司就是为什么一定要清楚产品在空闲时间和最大容量下的性能表现。生产环境的使用有着很大的随机性,因此很难预测它的表现,所以一定要花时间去“敲打”网站,从而收集尽可能多的信息,这样才有利于保证公共发布能取得成功,使用户第一次访问服务之后仍然愿意返回网站建设。
>>> 查看《网站携带负载的压力测试》更多相关资讯 <<<
本文地址:http://nlpc.cn/news/html/4531.html