-n 在測試會話中所執行的請求個數。默認時,僅執行一個請求 -c 一次產生的請求個數。默認是一次一個 -t 測試所進行的最大秒數 -k 啓用HTTP KeepAlive功能,則在一個HTTP會話中執行多個請求 -v 設置顯示信息的詳細程度
ab [options] [http://]hostname[:port]/path
如: ab -n 1000 -c 100 -k http://www.cnblogs.com/jincon/archive.html
Concurrency Level 併發的用戶數 Time taken for tests 全部請求被處理完成所花費的時間總和 Complete requests 總請求數 Failed requests 失敗的請求總數 Requests per second 吞吐率=Complete requests / Time taken for tests Time per request 用戶平均請求等待時間=Time taken for tests /(Complete requests / Concurrency Level) Time per request 服務器平均請求處理時間=Time taken for tests / Complete requests Transfer rate 請求單位時間內獲取的數據長度
yum install GnuPlot apt-get install GnuPlot
ab -n 500 -c 100 -g ./ab_500_100.dat -k http://localhost/index.php
starttime seconds ctime dtime ttime wait Mon Jan 27 21:03:02 2014 1390827782 89 503 592 28 Mon Jan 27 21:03:02 2014 1390827782 84 591 676 24
# 設定輸出圖片的格式 set terminal png # 設定輸出的圖片文件名 set output "ab_500.png" # 圖表的標題 set title "ab_500 ab -n 500 -c 100,200,300" # 設定圖表的X軸和Y軸縮放比例(至關於調整圖片的縱橫比例,方形的很差看啊) set size 1,0.7 # 設定以Y軸數據爲基準繪製柵格(就是示例圖表中的橫向虛線) set grid y
# X軸標題 set xlabel "request"
# Y軸標題 set ylabel "response time (ms)" # 設定plot的數據文件,曲線風格和圖例名稱,以第九列數據ttime爲基準數據繪圖 plot "ab_500_100.dat" using 9 smooth sbezier with lines title "conc per 100", "ab_500_200.dat" using 9 smooth sbezier with lines title "conc per 200", "ab_500_300.dat" using 9 smooth sbezier with lines title "conc per 300" gnuplot> plot "test.dat" u 7 with lines title "ctime",\ >"test.dat" u 8 with lines title "dtime",\ >"test.dat" u 9 with lines title "ttime",\ >"test.dat" u 10 with lines title "wait"
set size 1,0.7 縮放比例,前面是X軸,後面是Y軸, (0, 1]的一個浮點數,1爲原始值php
using 9 表示用哪一列數據繪圖,數字是數據行按照空格或製表符分割的字段數字索引,從1開始html
smooth sbezier plot提供的一些數據填充算法以保證線條平滑度的,包含以下選項:smooth {unique | csplines | acsplines | bezier | sbezier},更詳細解釋請參考官方文檔算法
with lines title "xxx" 這個會再右上角生成一個圖例,用於區分什麼顏色的線條是哪一項數據服務器
生成的圖表以下:併發