Nginx应用案例分享:压力测试
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
在運(yùn)維工作中,壓力測(cè)試是一項(xiàng)非常重要的工作。比如在一個(gè)網(wǎng)站上線之前,能承受多大訪問量、在大訪問量情況下性能怎樣,這些數(shù)據(jù)指標(biāo)好壞將會(huì)直接影響用戶體驗(yàn)。
但是,在壓力測(cè)試中存在一個(gè)共性,那就是壓力測(cè)試的結(jié)果與實(shí)際負(fù)載結(jié)果不會(huì)完全相同,就算壓力測(cè)試工作做的再好,也不能保證100%和線上性能指標(biāo)相同。面對(duì)這些問題,我們只能盡量去想方設(shè)法去模擬。所以,壓力測(cè)試非常有必要,有了這些數(shù)據(jù),我們就能對(duì)自己做維護(hù)的平臺(tái)做到心中有數(shù)。
目前較為常見的網(wǎng)站壓力測(cè)試工具有webbench、ab(apache bench)、tcpcopy、loadrunner
軟件名稱簡(jiǎn)介優(yōu)缺點(diǎn)
webbench由Lionbridge公司開發(fā),主要測(cè)試每秒鐘請(qǐng)求數(shù)和每秒鐘數(shù)據(jù)傳輸量,同時(shí)支持靜態(tài)、動(dòng)態(tài)、SSL
部署簡(jiǎn)單,靜動(dòng)態(tài)均可測(cè)試。適用于小型網(wǎng)站壓力測(cè)試(單例最多可模擬3萬并發(fā))
ab(apache bench)Apache自帶的壓力測(cè)試工具,主要功能用于測(cè)試網(wǎng)站每秒鐘處理請(qǐng)求個(gè)數(shù)
多見用于靜態(tài)壓力測(cè)試,功能較弱,非專業(yè)壓力測(cè)試工具
tcpcopy基于底層應(yīng)用請(qǐng)求復(fù)制,可轉(zhuǎn)發(fā)各種在線請(qǐng)求到測(cè)試服務(wù)器,具有分布式壓力測(cè)試功能,所測(cè)試數(shù)據(jù)與實(shí)際生產(chǎn)數(shù)據(jù)較為接近后起之秀,主要用于中大型壓力測(cè)試,所有基于 tcp的packets均可測(cè)試
loadrunner壓力測(cè)試界的泰斗,可以創(chuàng)建虛擬用戶,可以模擬用戶真實(shí)訪問流程從而錄制成腳本,其測(cè)試結(jié)果也最為逼真模擬最為逼真,并可進(jìn)行獨(dú)立的單元測(cè)試,但是部署配置較為復(fù)雜,需要專業(yè)人員才可以。
下面,筆者就以webbench為例,來講解一下網(wǎng)站在上線之前壓力測(cè)試是如何做的。
安裝webbench
#wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
#tar zxvf webbench-1.5.tar.gz
#cd webbench-1.5
#make && make install
進(jìn)行壓力測(cè)試
并發(fā)200時(shí)
# webbench -c 200 -t 60 http://blog.luwenju.com/index.php
參數(shù)解釋:-c為并發(fā)數(shù),-t為時(shí)間(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://blog.luwenju.com/index.php
200 clients, running 60 sec.
Speed=1454 pages/min, 2153340 bytes/sec.
Requests: 1454 susceed, 0 failed.
當(dāng)并發(fā)200時(shí),網(wǎng)站訪問速度正常
并發(fā)800時(shí)
#webbench -c 800 -t 60 http://blog.luwenju.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://blog.luwenju.com/index.php
800 clients, running 60 sec.
Speed=1194 pages/min, 2057881 bytes/sec.
Requests: 1185 susceed, 9 failed.
當(dāng)并發(fā)連接為800時(shí),網(wǎng)站訪問速度稍慢
并發(fā)1600時(shí)
#webbench -c 1600 -t 60 http://blog.luwenju.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://blog.luwenju.com/index.php
1600 clients, running 60 sec.
Speed=1256 pages/min, 1983506 bytes/sec.
Requests: 1183 susceed, 73 failed.
當(dāng)并發(fā)連接為1600時(shí),網(wǎng)站訪問速度便非常慢了
并發(fā)2000時(shí)
#webbench -c 2000 -t 60 http://blog.luwenju.com/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://blog.luwenju.com/index.php
2000 clients, running 60 sec.
Speed=2154 pages/min, 1968292 bytes/sec.
Requests: 2076 susceed, 78 failed.
當(dāng)并發(fā)2000時(shí),網(wǎng)站便出現(xiàn)“502 Bad Gateway”,由此可見web服務(wù)器已無法再處理用戶訪問請(qǐng)求
總結(jié):
1、壓力測(cè)試工作應(yīng)該放到產(chǎn)品上線之前,而不是上線以后
2、測(cè)試時(shí)盡量跨公網(wǎng)進(jìn)行,而不是內(nèi)網(wǎng)
3、測(cè)試時(shí)并發(fā)應(yīng)當(dāng)由小逐漸加大,比如并發(fā)100時(shí)觀察一下網(wǎng)站負(fù)載是多少、打開是否流程,并發(fā)200時(shí)又是多少、網(wǎng)站打開緩慢時(shí)并發(fā)是多少、網(wǎng)站打不開時(shí)并發(fā)又是多少
4、 應(yīng)盡量進(jìn)行單元測(cè)試,如B2C網(wǎng)站可以著重測(cè)試購物車、推廣頁面等,因?yàn)檫@些頁面占整個(gè)網(wǎng)站訪問量比重較大
轉(zhuǎn)載于:https://my.oschina.net/kisshua/blog/41309
總結(jié)
以上是生活随笔為你收集整理的Nginx应用案例分享:压力测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redhat5中架设DHCP服务器与DH
- 下一篇: nginx实现ip端口转发_Nginx实