apacheab源碼
❶ 如何用apache ab進行文件上傳壓力測試
Apache附帶的ab工具(本機使用的php環境是WAMP集成環境,ab工具位於D:wampinapacheApache2.2.21in)非常容易使用,ab可以直接在Web伺服器本地發起測試請求,這至關重要,因為有些時候我們需要測試的僅僅是伺服器的處理性能,並不想摻雜著網路傳輸時間的影響。ab進行一切測試的本質都是基於HTTP的,所以可以說ab對於Web伺服器軟體的黑盒性能測試,獲得的一切數據和計算結果,都是可以通過HTTP來解釋的。
測試本機是否正確安裝ab工具,在power shell想將當前目錄定位到bin,輸入 .ab –V 命令,如果安裝正確,則會將其版本信息列印出來。
PSD:wampinapacheApache2.2.21in>.ab-V
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech
,<ahref="http://www.apache.org/">http://www.apache.org/</a>
好了,一切就緒,下面提供一個壓力測試的實例:
輸入命令 PS
D:wampinapacheApache2.2.21in>.ab-n1000-c10http://localhost/index.php
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/
,http://www.apache.org/
Benchmarkinglocalhost(bepatient)
Completed100requests
Completed200requests
Completed300requests
Completed400requests
Completed500requests
Completed600requests
Completed700requests
Completed800requests
Completed900requests
Completed1000requests
Finished1000requests
ServerSoftware:Apache/2.2.21
ServerHostname:localhost
ServerPort:80
DocumentPath:/index.php
DocumentLength:211bytes
ConcurrencyLevel:10
Timetakenfortests:0.496seconds
Completerequests:1000
Failedrequests:0
Writeerrors:0
Non-2xxresponses:1000
Totaltransferred:400000bytes
HTMLtransferred:211000bytes
Requestspersecond:2015.93[#/sec](mean)
Timeperrequest:4.960[ms](mean)
Timeperrequest:0.496[ms](mean,acrossallconcurrentrequests)
Transferrate:787.47[Kbytes/sec]received
ConnectionTimes(ms)
minmean[+/-sd]medianmax
Connect:000.401
Processing:251.1412
Waiting:241.1412
Total:251.1512
(ms)
50%5
66%5
75%5
80%6
90%6
95%7
98%8
99%9
100%12(longestrequest)
下面開始解析這條命令語句:啟動ab,並出入三個參數(PS D:wampinapacheApache2.2.21in> .ab -n1000 -c10 http://localhost/index.php )
-n1000 表示請求總數為1000
-c10 表示並發用戶數為10
http://localhost/index.php 表示這寫請求的目標URL
測試結果也一目瞭然,測試出的吞吐率為:Requests per second: 2015.93 [#/sec] (mean) 初次之外還有其他一些信息。
Server Software 表示被測試的Web伺服器軟體名稱
Server Hostname 表示請求的URL主機名
Server Port 表示被測試的Web伺服器軟體的監聽埠
Document Path 表示請求的URL中的根絕對路徑,通過該文件的後綴名,我們一般可以了解該請求的類型
Document Length 表示HTTP響應數據的正文長度
Concurrency Level 表示並發用戶數,這是我們設置的參數之一
Time taken for tests 表示所有這些請求被處理完成所花費的總時間
Complete requests 表示總請求數量,這是我們設置的參數之一
Failed requests 表示失敗的請求數量,這里的失敗是指請求在連接伺服器、發送數據等環節發生異常,以及無響應後超時的情況。如果接收到的HTTP響應數據的頭信息中含有2XX以外的狀態碼,則會在測試結果中顯示另一個名為 「Non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算在失敗的請求中。
Total transferred 表示所有請求的響應數據長度總和,包括每個HTTP響應數據的頭信息和正文數據的長度。注意這里不包括HTTP請求數據的長度,僅僅為web伺服器流向用戶PC的應用層數據總長度。
HTML transferred 表示所有請求的響應數據中正文數據的總和,也就是減去了Total transferred中HTTP響應數據中的頭信息的長度。
Requests per second 吞吐率,計算公式:Complete requests / Time taken for tests
Time per request 用戶平均請求等待時間,計算公式:Time token for tests/(Complete requests/Concurrency Level)
Time per requet(across all concurrent request) 伺服器平均請求等待時間,計算公式:Time taken for tests/Complete requests,正好是吞吐率的倒數。也可以這么統計:Time per request/Concurrency Level
Transfer rate 表示這些請求在單位時間內從伺服器獲取的數據長度,計算公式:Total trnasferred/ Time taken for tests,這個統計很好的說明伺服器的處理能力達到極限時,其出口寬頻的需求量。
Percentage of requests served within a certain time(ms) 這部分數據用於描述每個請求處理時間的分布情況,比如以上測試,80%的請求處理時間都不超過6ms,這個處理時間是指前面的Time per request,即對於單個用戶而言,平均每個請求的處理時間。
未完待續。。。
❷ 如何使用Apache的ab工具進行網站性能測試
方法/步驟
打開Apache伺服器的安裝路徑,在bin目錄中有一個ab.exe的可執行程序,就是我們要介紹的壓力測試工具。
❸ 如何編譯Apache Hadoop2.4.0源代碼
安裝JDK
hadoop是java寫的,編譯hadoop必須安裝jdk。
從oracle官網下載jdk,下載地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,選擇 jdk-7u45-linux-x64.tar.gz下載。
執行以下命令解壓縮jdk
tar -zxvf jdk-7u45-linux-x64.tar.gz
會生成一個文件夾jdk1.7.0_45,然後設置環境變數中。
執行命令 vi/etc/profile,增加以下內容到配置文件中,結果顯示如下
export JAVA_HOME=/usr/java/jdk1.7.0_45
export JAVA_OPTS="-Xms1024m-Xmx1024m"
exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
保存退出文件後,執行以下命令
source /etc/profile
java –version 看到顯示的版本信息即正確。
安裝maven
hadoop源碼是使用maven組織管理的,必須下載maven。從maven官網下載,下載地址是http://maven.apache.org/download.cgi,選擇 apache-maven-3.1.0-bin.tar.gz 下載,不要選擇3.1下載。
執行以下命令解壓縮jdk
tar -zxvf apache-maven-3.1.0-bin.tar.gz
會生成一個文件夾apache-maven-3.1.0,然後設置環境變數中。
執行命令vi /etc/profile,編輯結果如下所示
MAVEN_HOME=/usr/maven/apache-maven-3.1.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
保存退出文件後,執行以下命令
source /etc/profile
mvn -version
如果看到下面的顯示信息,證明配置正確了。
❹ 如何使用,判斷Apache AB壓力測試
ApacheBench是Apache bin目錄下附帶的一個小工具,專門用來做HTTP伺服器的Benchmark Testing,這玩意兒可以單獨運行,可以到這兒直接下載了用 Apache Bench,下載後,將ab文件到 /usr/local/bin 目錄即可。
工具/原料
ApacheBench
方法/步驟
比較常用的命令,如:
ab -n 請求數 -c 並發數 URL
跑了一個簡單的Demo:
usertekiMacBook-Pro:~ zhaoxianlie$ ab -n 200 -c 10 http://127.0.0.1:8793/ This is ApacheBench, Version 2.3 <$Revision: 1554214 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.jinbanz.com/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 100 requests Completed 200 requests Finished 200 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8793 Document Path: / Document Length: 28012 bytes Concurrency Level: 10 Time taken for tests: 6.847 seconds Complete requests: 200 Failed requests: 0 Total transferred: 5665503 bytes HTML transferred: 5601103 bytes Requests per second: 29.21 [#/sec] (mean) Time per request: 342.343 [ms] (mean) Time per request: 34.234 [ms] (mean, across all concurrent requests) Transfer rate: 808.07 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 148 338 93.2 335 633 Waiting: 148 337 93.3 335 633 Total: 148 338 93.2 336 634 Percentage of the requests served within a certain time (ms) 50% 336 66% 371 75% 397 80% 413 90% 461 95% 500 98% 568 99% 610 100% 634 (longest request)
3
這其中Requests per second、Time per request算是大家都比較看重的兩個評估參數了吧。
不過對於這種壓力測試來說,也不能一上來就 -n 1000 -c 10,還是得慢慢來,一開始可以來一個 -n 50 -c 10這樣子,逐漸網上增加,取Request per second的最大值作為Http server的性能指標,應該會靠譜一些。
假設我的這個測試伺服器RPS峰值是30,那一分鍾能扛過來的請求差不多 1800 個,這是單核CPU的情況下。
假設是我廠伺服器的配置,24核,開啟Node的cluster模式,RPS應該是倍數增加的,明天去公司找台服務壓測一把。如果真是這樣,那麼每秒鍾能扛過來的請求差不多 720 個,換算到一個小時,是259.2w個訪問請求。
假設伺服器配置是Nginx+Node,Nginx做負載均衡,proxy_pass對應的upstream配置到4台Node伺服器,且每台Node伺服器均衡負載,那麼,一個小時能扛得動的流量基本是 1kw多一些,滿負荷跑一天,2.4億的流量了。
❺ apache kafka源碼怎麼編譯
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.(Kafka是一個分布式的、可分區的(partitioned)、基於備份的(replicated)和commit-log存儲的服務.。它提供了類似於messaging system的特性,但是在設計實現上完全不同)。kafka是一種高吞吐量的分布式發布訂閱消息系統,它有如下特性:
(1)、通過O(1)的磁碟數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。
(2)、高吞吐量:即使是非常普通的硬體kafka也可以支持每秒數十萬的消息。
(3)、支持通過kafka伺服器和消費機集群來分區消息。
(4)、支持Hadoop並行數據載入。
一、用Kafka裡面自帶的腳本進行編譯
下載好了Kafka源碼,裡面自帶了一個gradlew的腳本,我們可以利用這個編譯Kafka源碼:
1 # wget http://mirror.bit.e.cn/apache/kafka/0.8.1.1/kafka-0.8.1.1-src.tgz
2 # tar -zxf kafka-0.8.1.1-src.tgz
3 # cd kafka-0.8.1.1-src
4 # ./gradlew releaseTarGz
運行上面的命令進行編譯將會出現以下的異常信息:
01 :core:signArchives FAILED
02
03 FAILURE: Build failed with an exception.
04
05 * What went wrong:
06 Execution failed for task ':core:signArchives'.
07 > Cannot perform signing task ':core:signArchives' because it
08 has no configured signatory
09
10 * Try:
11 Run with --stacktrace option to get the stack trace. Run with
12 --info or --debug option to get more log output.
13
14 BUILD FAILED
這是一個bug(https://issues.apache.org/jira/browse/KAFKA-1297),可以用下面的命令進行編譯
1 ./gradlew releaseTarGzAll -x signArchives
這時候將會編譯成功(在編譯的過程中將會出現很多的)。在編譯的過程中,我們也可以指定對應的Scala版本進行編譯:
1 ./gradlew -PscalaVersion=2.10.3 releaseTarGz -x signArchives
編譯完之後將會在core/build/distributions/裡面生成kafka_2.10-0.8.1.1.tgz文件,這個和從網上下載的一樣,可以直接用。
二、利用sbt進行編譯
我們同樣可以用sbt來編譯Kafka,步驟如下:
01 # git clone https://git-wip-us.apache.org/repos/asf/kafka.git
02 # cd kafka
03 # git checkout -b 0.8 remotes/origin/0.8
04 # ./sbt update
05 [info] [SUCCESSFUL ] org.eclipse.jdt#core;3.1.1!core.jar (2243ms)
06 [info] downloading http://repo1.maven.org/maven2/ant/ant/1.6.5/ant-1.6.5.jar ...
07 [info] [SUCCESSFUL ] ant#ant;1.6.5!ant.jar (1150ms)
08 [info] Done updating.
09 [info] Resolving org.apache.hadoop#hadoop-core;0.20.2 ...
10 [info] Done updating.
11 [info] Resolving com.yammer.metrics#metrics-annotation;2.2.0 ...
12 [info] Done updating.
13 [info] Resolving com.yammer.metrics#metrics-annotation;2.2.0 ...
14 [info] Done updating.
15 [success] Total time: 168 s, completed Jun 18, 2014 6:51:38 PM
16
17 # ./sbt package
18 [info] Set current project to Kafka (in build file:/export1/spark/kafka/)
19 Getting Scala 2.8.0 ...
20 :: retrieving :: org.scala-sbt#boot-scala
21 confs: [default]
22 3 artifacts copied, 0 already retrieved (14544kB/27ms)
23 [success] Total time: 1 s, completed Jun 18, 2014 6:52:37 PM
對於Kafka 0.8及以上版本還需要運行以下的命令:
01 # ./sbt assembly-package-dependency
02 [info] Loading project definition from /export1/spark/kafka/project
03 [warn] Multiple resolvers having different access mechanism configured with
04 same name 'sbt-plugin-releases'. To avoid conflict, Remove plicate project
05 resolvers (`resolvers`) or rename publishing resolver (`publishTo`).
06 [info] Set current project to Kafka (in build file:/export1/spark/kafka/)
07 [warn] Credentials file /home/wyp/.m2/.credentials does not exist
08 [info] Including slf4j-api-1.7.2.jar
09 [info] Including metrics-annotation-2.2.0.jar
10 [info] Including scala-compiler.jar
11 [info] Including scala-library.jar
12 [info] Including slf4j-simple-1.6.4.jar
13 [info] Including metrics-core-2.2.0.jar
14 [info] Including snappy-java-1.0.4.1.jar
15 [info] Including zookeeper-3.3.4.jar
16 [info] Including log4j-1.2.15.jar
17 [info] Including zkclient-0.3.jar
18 [info] Including jopt-simple-3.2.jar
19 [warn] Merging 'META-INF/NOTICE' with strategy 'rename'
20 [warn] Merging 'org/xerial/snappy/native/README' with strategy 'rename'
21 [warn] Merging 'META-INF/maven/org.xerial.snappy/snappy-java/LICENSE'
22 with strategy 'rename'
23 [warn] Merging 'LICENSE.txt' with strategy 'rename'
24 [warn] Merging 'META-INF/LICENSE' with strategy 'rename'
25 [warn] Merging 'META-INF/MANIFEST.MF' with strategy 'discard'
26 [warn] Strategy 'discard' was applied to a file
27 [warn] Strategy 'rename' was applied to 5 files
28 [success] Total time: 3 s, completed Jun 18, 2014 6:53:41 PM
當然,我們也可以在sbt裡面指定scala的版本:
01 <!--
02 User: 過往記憶
03 Date: 14-6-18
04 Time: 20:20
05 bolg: http://www.iteblog.com
06 本文地址:http://www.iteblog.com/archives/1044
07 過往記憶博客,專注於hadoop、hive、spark、shark、flume的技術博客,大量的干貨
08 過往記憶博客微信公共帳號:iteblog_hadoop
09 -->
10 sbt "++2.10.3 update"
11 sbt "++2.10.3 package"
12 sbt "++2.10.3 assembly-package-dependency"
❻ 如何使用Apache的ab工具進行網站性能測試
網站性能壓力測試是伺服器網站性能調優過程中必不可缺少的一環。只有讓伺服器處在高壓情況下,才能真正體現出軟體、硬體等各種設置不當所暴露出的問題。
性能測試工具目前最常見的有以下幾種:ab、http_load、webbench、siege。今天我們專門來介紹ab。
ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache伺服器進行網站訪問壓力測試,也可以對或其它類型的伺服器進行壓力測試。比如nginx、tomcat、IIS等。
下面我們開始介紹有關ab命令的使用:
1、ab的原理
2、ab的安裝
3、ab參數說明
4、ab性能指標
5、ab實際使用
❼ 如何編譯Apache Hadoop2.4.0源代碼
安裝JDK
hadoop是java寫的,編譯hadoop必須安裝jdk。
從oracle官網下載jdk,下載地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,選擇 jdk-7u45-linux-x64.tar.gz下載。
執行以下命令解壓縮jdk
tar -zxvfjdk-7u45-linux-x64.tar.gz
會生成一個文件夾jdk1.7.0_45,然後設置環境變數中。
執行命令 vi/etc/profile,增加以下內容到配置文件中,結果顯示如下
export JAVA_HOME=/usr/java/jdk1.7.0_45
export JAVA_OPTS="-Xms1024m-Xmx1024m"
exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
保存退出文件後,執行以下命令
source /etc/profile
java –version 看到顯示的版本信息即正確。
安裝maven
hadoop源碼是使用maven組織管理的,必須下載maven。從maven官網下載,下載地址是http://maven.apache.org/download.cgi,選擇 apache-maven-3.1.0-bin.tar.gz 下載,不要選擇3.1下載。
執行以下命令解壓縮jdk
tar -zxvf apache-maven-3.1.0-bin.tar.gz
會生成一個文件夾apache-maven-3.1.0,然後設置環境變數中。
執行命令vi /etc/profile,編輯結果如下所示
MAVEN_HOME=/usr/maven/apache-maven-3.1.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
保存退出文件後,執行以下命令
source /etc/profile
mvn -version
如果看到下面的顯示信息,證明配置正確了。
❽ 怎麼查看apache的ab測試的結果,每行數據分布代表什麼意思
給你列幾個我自己常看的性能指標:
Concurrency Level #測試的並發數
Time taken for tests #完成所有請求的時間合計
Complete requests #完成的請求數合計
Failed requests #失敗的請求數
Requests per second #平均每秒處理多少個請求
Time per request #平均的響應時間,單位是毫秒
PS:網站性能壓力測試是性能調優過程中必不可少的一環。只有讓伺服器處在高壓情況下才能真正體現出各種設置所暴露的問題。Apache中有個自帶的,名為ab的程序,可以對Apache或其它類型的伺服器進行網站訪問壓力測試。
ApacheBench命令原理:
ab命令會創建很多的並發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web伺服器的壓力。
ab命令對發出負載的計算機要求很低,既不會佔用很高CPU,也不會佔用很多內存,但卻會給目標伺服器造成巨大的負載,其原理類似CC攻擊。自己測試使用也須注意,否則一次上太多的負載,可能造成目標伺服器因資源耗完,嚴重時甚至導致死機。
ApacheBench參數說明
格式:ab [options] [http://]hostname[:port]/path
參數說明:
-n requests Number of requests to perform
//在測試會話中所執行的請求個數(本次測試總共要訪問頁面的次數)。默認時,僅執行一個請求。
-c concurrency Number of multiple requests to make
//一次產生的請求個數(並發數)。默認是一次一個。
-t timelimit Seconds to max. wait for responses
//測試所進行的最大秒數。其內部隱含值是-n 50000。它可以使對伺服器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。
-p postfile File containing data to POST
//包含了需要POST的數據的文件,文件格式如「p1=1&p2=2」.使用方法是 -p 111.txt 。 (配合-T)
-T content-type Content-type header for POSTing
//POST數據所使用的Content-type頭信息,如 -T 「application/x-www-form-urlencoded」 。 (配合-p)
-v verbosity How much troubleshooting info to print
//設置顯示信息的詳細程度 – 4或更大值會顯示頭信息, 3或更大值可以顯示響應代碼(404, 200等), 2或更大值可以顯示警告和其他信息。 -V 顯示版本號並退出。
-w Print out results in HTML tables
//以HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表。
-i Use HEAD instead of GET
// 執行HEAD請求,而不是GET。
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. -C 「c1=1234,c2=2,c3=3」 (repeatable)
//-C cookie-name=value 對請求附加一個Cookie:行。 其典型形式是name=value的一個參數對。此參數可以重復,用逗號分割。
提示:可以藉助session實現原理傳遞 JSESSIONID參數, 實現保持會話的功能,如
-C 」 c1=1234,c2=2,c3=3, JSESSIONID=″ 。
-H attribute Add Arbitrary header line, eg. 『Accept-Encoding: gzip』 Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
//-P proxy-auth-username:password 對一個中轉代理提供BASIC認證信任。用戶名和密碼由一個:隔開,並以base64編碼形式發送。無論伺服器是否需要(即, 是否發送了401認證需求代碼),此字元串都會被發送。
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)
//-attributes 設置屬性的字元串. 缺陷程序中有各種靜態聲明的固定長度的緩沖區。另外,對命令行參數、伺服器的響應頭和其他外部輸入的解析也很簡單,這可能會有不良後果。它沒有完整地實現 HTTP/1.x; 僅接受某些』預想』的響應格式。 strstr(3)的頻繁使用可能會帶來性能問題,即你可能是在測試ab而不是伺服器的性能。
參數很多,一般我們用 -c 和 -n 參數就可以了。例如:
# ab -c 5000 -n 600 http://127.0.0.1/index.php
ApacheBench用法詳解:
在Linux系統,一般安裝好Apache後可以直接執行;
# ab -n 4000 -c 1000 http://www.ha97.com/
如果是Win系統下,打開cmd命令行窗口,cd到apache安裝目錄的bin目錄下;
-n後面的4000代表總共發出4000個請求;-c後面的1000表示採用1000個並發(模擬1000個人同時訪問),後面的網址表示測試的目標URL。
稍等一會得到類似如下顯示結果:
結果分析:
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.80.157 (be patient)
Completed 400 requests
Completed 800 requests
Completed 1200 requests
Completed 1600 requests
Completed 2000 requests
Completed 2400 requests
Completed 2800 requests
Completed 3200 requests
Completed 3600 requests
Completed 4000 requests
Finished 4000 requests
Server Software: Apache/2.2.15
Server Hostname: 192.168.80.157
Server Port: 80
Document Path: /phpinfo.php
#測試的頁面
Document Length: 50797 bytes
#頁面大小
Concurrency Level: 1000
#測試的並發數
Time taken for tests: 11.846 seconds
#整個測試持續的時間
Complete requests: 4000
#完成的請求數量
Failed requests: 0
#失敗的請求數量
Write errors: 0
Total transferred: 204586997 bytes
#整個過程中的網路傳輸量
HTML transferred: 203479961 bytes
#整個過程中的HTML內容傳輸量
Requests per second: 337.67 [#/sec] (mean)
#最重要的指標之一,相當於LR中的每秒事務數,後面括弧中的mean表示這是一個平均值
Time per request: 2961.449 [ms] (mean)
#最重要的指標之二,相當於LR中的平均事務響應時間,後面括弧中的mean表示這是一個平均值
Time per request: 2.961 [ms] (mean, across all concurrent requests)
#每個連接請求實際運行時間的平均值
Transfer rate: 16866.07 [Kbytes/sec] received
#平均每秒網路上的流量,可以幫助排除是否存在網路流量過大導致響應時間延長的問題
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 483 1773.5 11 9052
Processing: 2 556 1459.1 255 11763
Waiting: 1 515 1459.8 220 11756
Total: 139 1039 2296.6 275 11843
#網路上消耗的時間的分解,各項數據的具體演算法還不是很清楚
Percentage of the requests served within a certain time (ms)
50% 275
66% 298
75% 328
80% 373
90% 3260
95% 9075
98% 9267
99% 11713
100% 11843 (longest request)
#整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中50%的用戶響應時間小於275毫秒,66%的用戶響應時間小於298毫秒,最大的響應時間小於11843毫秒。對於並發請求,cpu實際上並不是同時處理的,而是按照每個請求獲得的時間片逐個輪轉處理的,所以基本上第一個Time per request時間約等於第二個Time per request時間乘以並發請求數。
總結:在遠程對web伺服器進行壓力測試,往往效果不理想(因為網路延時過大),建議使用內網的另一台或者多台伺服器通過內網進行測試,這樣得出的數據,准確度會高很多。如果只有單獨的一台伺服器,可以直接本地測試,比遠程測試效果要准確。
❾ 源碼安裝apache報錯如下,求助
如下:
ab.o: In function `main':
/APP/software/httpd-2.4.4/support/ab.c:2273: undefined reference to `TLSv1_2_client_method'
/APP/software/httpd-2.4.4/support/ab.c:2271: undefined reference to `TLSv1_1_client_method'
collect2: ld returned 1 exit status
make[2]: *** [ab] Error 1
make[2]: Leaving directory `/APP/software/httpd-2.4.4/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/APP/software/httpd-2.4.4/support'
make: *** [all-recursive] Error 1
❿ apache ab工具怎麼傳一個以上的參數
Apache伺服器自帶了ab壓力測試工具,可以用來測試網站性能,使用簡單方便。
工具/原料
Apache
方法/步驟
打開Apache伺服器的安裝路徑,在bin目錄中有一個ab.exe的可執行程序,就是我們要介紹的壓力測試工具。
在Windows系統的命令行下,進入ab.exe程序所在目錄,執行ab.exe程序。注意直接雙擊無法正確運行。
執行ab命令成功後,可以看到如圖提示。該幫助很清楚詳細的介紹了ab的用法以及各個參數的含義。
ab 的用法是:ab [options] [http://]hostname[:port]/path
例如:ab -n 5000 -c 200 http://localhost/index.php
上例表示總共訪問http://localhost/index.php這個腳本5000次,200並發同時執行。
ab常用參數的介紹:
-n :總共的請求執行數,預設是1;
-c: 並發數,預設是1;
-t:測試所進行的總時間,秒為單位,預設50000s
-p:POST時的數據文件
-w: 以HTML表的格式輸出結果
執行測試用例:ab -n 1000 -c 100 -w http://localhost/index.php >>c:\1.html
上面的測試用例表示100並發的情況下,共測試訪問index.php腳本1000次,並將測試結果保存到c:\1.html文件中。
測試報告如圖,可知在該100並發訪問的情況下,共測試訪問1000次,失敗了852次。可知該腳本在此環境無法滿足100並發訪問的要求。
修改參數繼續測試。測試並發50和30兩種情況,由測試報告得知,在並發訪問降到30時,錯誤的訪問數降為39。
步驟閱讀