【服务器运维】Web Bench-linux压力测试工具
这玩意你懂的,整几台服务器或者vps咣咣一开.基本几分钟网站就OVER了.所以还是要慎用这玩意[sws_green_box box_size="680"] 在运维工作中,压力测试是一项非常重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。
但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台做到心中有数。
目前较为常见的网站压力测试工具有webbench、ab(apache bench)、tcpcopy、loadrunner。
webbench由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL,部署简单,静动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发) 。
ab(apache bench)Apache自带的压力测试工具,主要功能用于测试网站每秒钟处理请求个数,多见用于静态压力测试,功能较弱,非专业压力测试工具。
tcpcopy基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近后起之秀,主要用于中大型压力测试,所有基于tcp的packets均可测试。
loadrunner压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
[/sws_green_box]
Webbench是有名的网站压力测试工具,它是由 Lionbridge公司开发。
Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webBech的标准测试可以向我们展示服务器的 两项 内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。
安装webbench
[sws_code language="html"] [/sws_code]
进行压力测试,并发200时。
[sws_code language="html"] [/sws_code]
参数解释:-c为并发数,-t为时间(秒)
[sws_code language="html"] [/sws_code]
当并发200时,网站访问速度正常
并发800时
[sws_code language="html"] [/sws_code]
当并发连接为800时,网站访问速度稍慢
并发1600时
[sws_code language="html"] [/sws_code]
当并发连接为1600时,网站访问速度便非常慢了
并发2000时
[sws_code language="html"] [/sws_code]
当并发2000时,网站便出现"502 Bad Gateway",由此可见web服务器已无法再处理用户访问请求
总结:
1、压力测试工作应该放到产品上线之前,而不是上线以后
2、测试时尽量跨公网进行,而不是内网
3、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开是否流程,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少
4、 应尽量进行单元测试,如B2C网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大
如果有人用这种方式而已攻击你那么你可以用这个玩意防一下
http://code.google.com/p/ddos-defender-v2/
常见问题:
[sws_code language="html"] [/sws_code]
ok,是在centos下没自动安装ctags命令,于是yum install ctags,安装成功。
在ubuntu里创建一个目录想统一管理某个项目,弹出一个权限不够的问题,解决方法如下:
在终端里:
如果是用的fedora的系统的话就su root回车后输入密码
如果是ubuntu的话就sudo -i 然后输入密码,这时你就有管理员权限了,mkdir 目录名 就可以成功创建文件夹了
同时需要
(1)到http://ctags.sourceforge.net/下载ctags源码ctags-5.8.tar.gz
[sws_code language="html"] [/sws_code]
(2)解压并安装
[sws_code language="html"] [/sws_code]