十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
方法/步驟 1 打開Apache服務(wù)器的安裝路徑,在bin目錄中有一個(gè)ab.exe的可執(zhí)行程序,就是我們要介紹的壓力測(cè)試工具。 2 在Windows系統(tǒng)的命令行下,進(jìn)入ab.exe程序所在目錄,執(zhí)行ab.exe程序。注意直接雙擊無法正確運(yùn)行。 3 執(zhí)行ab命令成功后,可以看到如圖提示。該幫助很清楚詳細(xì)的介紹了ab的用法以及各個(gè)參數(shù)的含義。 ab 的用法是:ab [options] [http://]hostname[:port]/path 例如:ab -n 5000 -c 200 上例表示總共訪問這個(gè)腳本5000次,200并發(fā)同時(shí)執(zhí)行。 ab常用參數(shù)的介紹: -n :總共的請(qǐng)求執(zhí)行數(shù),缺省是1; -c: 并發(fā)數(shù),缺省是1; -t:測(cè)試所進(jìn)行的總時(shí)間,秒為單位,缺省50000s -p:POST時(shí)的數(shù)據(jù)文件 -w: 以HTML表的格式輸出結(jié)果 4 執(zhí)行測(cè)試用例:ab -n 1000 -c 100 -w c:\1.html 上面的測(cè)試用例表示100并發(fā)的情況下,共測(cè)試訪問index.php腳本1000次,并將測(cè)試結(jié)果保存到c:\1.html文件中。 5 測(cè)試報(bào)告如圖,可知在該100并發(fā)訪問的情況下,共測(cè)試訪問1000次,失敗了852次??芍撃_本在此環(huán)境無法滿足100并發(fā)訪問的要求。

成都創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。
本文只講jmeter分布式壓測(cè)怎么在Linux環(huán)境下配置:
使用分布式壓測(cè),是因?yàn)閱蝹€(gè)壓測(cè)機(jī)并發(fā)到不到系統(tǒng)要求,所以多個(gè)壓測(cè)機(jī)同時(shí)去壓。
一般是由一個(gè)主機(jī)(master)和幾臺(tái)壓力機(jī)(slave)組成。
主機(jī) 主要是起到啟動(dòng)和收集結(jié)果功能(當(dāng)然也可以參與壓測(cè)但不建議),測(cè)試腳本jmx在這臺(tái)機(jī)器下,執(zhí)行的時(shí)候會(huì)發(fā)送給每臺(tái)壓力機(jī)。
壓力機(jī) 主要接受主機(jī)發(fā)送的壓測(cè)腳本,同時(shí)進(jìn)行壓測(cè),并把結(jié)果回傳給主機(jī)。
以下是本人的壓測(cè)環(huán)境,可以參考的去配置:
都是在Linux環(huán)境下(有些是主機(jī)Windows,壓力機(jī)Linux,都是這樣配置)
master主機(jī):10.244.162.8
slave壓測(cè)機(jī)(三臺(tái)):10.244.162.9,10.244.162.10,10.244.162.11
主機(jī)ping一下壓測(cè)機(jī),是否可以ping通,否則關(guān)閉防火墻或者多個(gè)網(wǎng)卡(一臺(tái)機(jī)器可能配置多個(gè)網(wǎng)卡多個(gè)IP,尤其是Windows當(dāng)做主機(jī))。
jdk,jmeter安裝在主機(jī)和壓力機(jī)下,盡量版本統(tǒng)一,jmeter在這幾個(gè)機(jī)器服務(wù)都可以啟動(dòng)jmeter -v,如果權(quán)限不夠到bin/目錄下,命令: chmod 777 jmeter jmeter-server jmeter.sh 。(安裝比較簡(jiǎn)單,這里就不多贅述)
保存。
在apache-jmeter-5.1.1/bin下執(zhí)行./jmeter-server(代表jmeter啟動(dòng),監(jiān)聽狀態(tài),等待主機(jī)發(fā)送測(cè)試腳本和執(zhí)行命令) ,
有些啟動(dòng)命令:./jmeter-server -Djava.rmi.server.hostname=10.244.162.10(當(dāng)前機(jī)器的ip),我覺得都行,沒編輯配置文件那一項(xiàng)這樣啟動(dòng)。
啟動(dòng)就設(shè)置完成。
如果是Windows當(dāng)主機(jī),重啟一下jmeter在運(yùn)行-遠(yuǎn)程啟動(dòng)既可以看到壓測(cè)機(jī)。
如果是Linux下主機(jī),需要用到命令:
我是在測(cè)試jmx腳本的目錄下執(zhí)行,這樣方便收集信息。
sh (jmeter啟動(dòng))? -n -t (jmx腳本) -R? (壓力機(jī)ip,多個(gè)中間用英文逗號(hào)隔開) -l (test.jtl)? -e -o? (壓測(cè)報(bào)告結(jié)果html文件夾)
sh /app/apache-jmeter-5.2.1/bin/jmeter.sh -n -t test.jmx -R 10.244.162.9,10.244.162.10 -l test.jtl? -e -o? test
注意:主機(jī)只傳jmx給壓力機(jī),如果壓測(cè)腳本有引用變量文件,比如csv,txt文件等是不傳的,壓力機(jī)也要有這些變量文件,復(fù)制過去存放的目錄和上面壓力機(jī)./jmeter-server啟動(dòng)的目錄一致(就是你在哪個(gè)目錄啟動(dòng)的就放在哪個(gè)目錄下),否則壓力機(jī)找不到變量文件,執(zhí)行會(huì)報(bào)錯(cuò)或者直接結(jié)束無測(cè)試結(jié)果。
介紹個(gè)http_load壓力測(cè)試工具,http_load,類似的工具還有webbench、ab、Siege。
1、下載
官方網(wǎng)站:
復(fù)制代碼
代碼如下:
cd /root
wget
tar xzf http_load-12mar2006.tar.gz
2、安裝
復(fù)制代碼
代碼如下:
cd http_load-12mar2006
make
執(zhí)行完make,會(huì)在當(dāng)前目錄生成一個(gè)http_load二進(jìn)制文件。
3、使用方法
復(fù)制代碼
代碼如下:
root@www:~/http_load-12mar2006# ./http_load --help
usage: ./http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
-parallel N | -rate N [-jitter]
-fetches N | -seconds N
url_file
One start specifier, either -parallel or -rate, is required.
One end specifier, either -fetches or -seconds, is required.
主要參數(shù)說明:
-parallel 簡(jiǎn)寫-p :含義是并發(fā)的用戶進(jìn)程數(shù)。
-rate 簡(jiǎn)寫-r :含義是每秒的訪問頻率
-fetches 簡(jiǎn)寫-f :含義是總計(jì)的訪問次數(shù)
-seconds簡(jiǎn)寫-s :含義是總計(jì)的訪問時(shí)間
選擇參數(shù)時(shí),-parallel和-rate選其中一個(gè),-fetches和-seconds選其中一個(gè)。
示例:
http_load -parallel 50 -s 10 urls.txt
這段命令行是同時(shí)使用50個(gè)進(jìn)程,隨機(jī)訪問urls.txt中的網(wǎng)址列表,總共訪問10秒。
http_load -rate 50 -f 5000 urls.txt
每秒請(qǐng)求50次,總共請(qǐng)求5000次停止。
4、基本的返回值
(1).49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
說明在上面的測(cè)試中運(yùn)行了49個(gè)請(qǐng)求,最大的并發(fā)進(jìn)程數(shù)是2,總計(jì)傳輸?shù)臄?shù)據(jù)是289884bytes,運(yùn)行的時(shí)間是10.0148秒
(2).5916 mean bytes/connection
說明每一連接平均傳輸?shù)臄?shù)據(jù)量289884/49=5916
(3).4.89274 fetches/sec, 28945.5 bytes/sec
說明每秒的響應(yīng)請(qǐng)求為4.89274,每秒傳遞的數(shù)據(jù)為28945.5 bytes/sec
(4).msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
說明每連接的平均響應(yīng)時(shí)間是28.8932 msecs,最大的響應(yīng)時(shí)間44.243 msecs,最小的響應(yīng)時(shí)間24.488 msecs
(5).msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
(6).HTTP response codes: code 200 -- 49
說明打開響應(yīng)頁面的類型,如果403的類型過多,那可能要注意是否系統(tǒng)遇到了瓶頸。
特殊說明:這里,我們一般會(huì)關(guān)注到的指標(biāo)是fetches/sec、msecs/connect
他們分別對(duì)應(yīng)的常用性能指標(biāo)參數(shù)Qpt-每秒響應(yīng)用戶數(shù)和response time,每連接響應(yīng)用戶時(shí)間。測(cè)試的結(jié)果主要也是看這兩個(gè)值。當(dāng)然僅有這兩個(gè)指標(biāo)并不能完成對(duì)性能的分析,我們還需要對(duì)服務(wù)器的cpu、men進(jìn)行分析,才能得出結(jié)論
5、如果你需要測(cè)試https,你必須將 Makefile中
復(fù)制代碼
代碼如下:
# CONFIGURE: If you want to compile in support for https, uncomment these
# definitions. You will need to have already built OpenSSL, available at
# a href="";/a Make sure the SSL_TREE definition points to the
# tree with your OpenSSL installation - depending on how you installed it,
# it may be in /usr/local instead of /usr/local/ssl.
SSL_TREE = /usr
SSL_DEFS = -DUSE_SSL
SSL_INC = -I$(SSL_TREE)/include
SSL_LIBS = -L$(SSL_TREE)/lib -lssl -lcrypto
由于使用到openssl,你必須安裝openssl和相應(yīng)的開發(fā)環(huán)境
復(fù)制代碼
代碼如下:
apt-get install openssl
apt-get install libssl-dev/p pfind -name ssl.h
/usr/include/openssl/ssl.h