作为一名合格的网站的架构师,需对网站整体能承载的压力了如指掌,只有这样才能做到运筹帷幄,决胜千里。
尤其是一个新项目在上线之前,首要做的是在预演环境,模拟用户访问进行压测,这样,对于其能承受多大访问量、在高并发情况下,web服务及服务器硬件的性能如何?这些数据指标我们都要收集。以此来对上线后的真实环境下,用户体验效果的优劣做出正确评估。
但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对网站整体架构规划、架构升级、后期运维做到心中有数。
在线上环境中,常用的网站压测工具有webbench、ab(apache bench)、tcpcopy、loadrunner、httpload等。软件名称简介优缺点
webbench由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL,部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)
ab(apache bench)Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数,多见用于静态压力测试,功能较弱,非专业压力测试工具
tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近后起之秀,主要用于中大型压力测试,所有基于 tcp的packets均可测试。
loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
http_load是基于linux平台的性能测试工具,它体积非常小,仅100KB。它以并行复用的方式运行,可以测试web服务器的吞吐量与负载。
当然,上述的压测软件在特定的环境可能无法满足我们的需求,怎么办呢?可以在现有的基础上,做一下小小的改造,如“
添加gzip功能”
如果你立志做一名优秀的网站架构师,上述的benchmark工具,则需要你花费定量的时间好好研究,古语“工欲善其事,必先利其器”,磨刀不误砍柴工。
阅读(6500) | 评论(3) | 转发(2) |