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