http_load壓測服務器

1.下載http_load ,下載地址:http://acme.com/software/http_load/http_load-12mar2006.tar.gzhtml

[root@localhost ~]#cd /usr/local

[root@localhost local]#mkdir http_load

[root@localhost local]#chmod 777 http_load

[root@localhost local]#cd http_load

[root@localhost http_load]# wget  http://acme.com/software/http_load/http_load-12mar2006.tar.gz

 

2.解壓安裝http_load服務器

#tar -zxvf http_load-12mar2006.tar.gz

#cd http_load-12mar2006

#make && make install

這裏tar解壓包的時候出現錯誤 gzip: stdin: not in gzip format併發

緣由是這個壓縮包沒有用gzip格式壓縮,因此不用加z參數,囧(因此不是全部的解壓包都得用 -zxvf)!socket

改爲使用tar -xvf http_load-12mar2006.tar.gztcp

3.使用http_load測試

基本用法:http_load -p 併發訪問進程數 -s 訪問時間 須要訪問的URL文件fetch

參數簡單說明一下
-parallel   簡寫-p :含義是併發的用戶進程數。
-fetches   簡寫-f :含義是總計的訪問次數
-rate        簡寫-p :含義是每秒的訪問頻率
-seconds 簡寫-s :含義是總計的訪問時間url

新建url.txt文件,每一個url一行spa

http://www.baidu.com/
http://www.baidu.com/blog/
http://www.baidu.com/signin/
http://www.baidu.com/signup/
http://www.baidu.com/article/123.html
http://www.baidu.com/article/1233.html

示例:http_load -p 100 -s 60 url.txtcode

#100個併發執行60秒

測試結果:852 fetches, 100 max parallel, 1.45158e+07 bytes, in 60 seconds

說明在上面的測試中運行了852個請求,最大的併發進程數是100,總計傳輸的數據是1.45158e+07bytes,運行的時間是60秒

17037.3 mean bytes/connection

說明每一鏈接平均傳輸的數據量1.45158e+07  / 852 =17037.3


14.2 fetches/sec, 241930 bytes/sec

說明每秒的響應請求爲14.2 ,每秒傳遞的數據爲241930 bytes/sec


msecs/connect: 0.165399 mean, 15.884 max, 0.031 min

說明每鏈接的平均響應時間是0.165399 msecs,最大的響應時間15.884 msecs,最小的響應時間0.031 msecs
msecs/first-response: 6634.48 mean, 7501.29 max, 462.391 min
83 bad byte counts
HTTP response codes:
  code 200 -- 852

 

 

常見錯誤:

1.

(1)byte count wrong
http_load在處理時會去關注每次訪問同一個URL返回結果(即字節數)是否一致,若不一致就會拋出byte count wrong ,因此動態頁面能夠忽略這個錯誤信息。

(2)too many open files
系統限制的open files過小,ulimit -n 修改open files值便可

(3)沒法發送大請求 (請求長度>600個字符)
默認接受請求的buf大小 http_load.c

(4)Cannot assign requested address
客戶端頻繁的連服務器,因爲每次鏈接都在很短的時間內結束,致使不少的TIME_WAIT,以致於用光了可用的端口號,因此新的鏈接沒辦法綁定端口,因此要改客戶端機器的配置,
在sysctl.conf里加:
net.ipv4.tcp_tw_reuse = 1 表示開啓重用。容許將TIME-WAIT sockets從新用於新的TCP鏈接,默認爲0,表示關閉;
net.ipv4.tcp_timestamps=1 開啓對於TCP時間戳的支持,若該項設置爲0,則下面一項設置不起做用
net.ipv4.tcp_tw_recycle=1 表示開啓TCP鏈接中TIME-WAIT sockets的快速回收
相關文章
相關標籤/搜索