Linux下使用ab命令進行高併發壓力測試
阿新 • • 發佈:2018-12-31
1、做壓力測試的工具:ab
2、效能的監控工具:nmon
檢視下linux主機上的ulimit -n 的資料,沒有改動過的是1024,最好要改的大一點。這個是linux下最大執行緒數,如果過小的話無法進行大並量的測試。ab經行壓力測試時的指令碼我用的形式為:
1.(get方式)./ab -n 1000 -c 1000 -k http://localhost/hello.php
2.(post方式./ab -n 2500 -c 2500 -k -p postfile http://localhost/hello.php
其中引數n為請求的次數,c為一次請求的併發次數,-k為keep_alive,一般出現連結被重置的錯誤時最好帶上-k的引數。
還有好多引數,可以在ab--help中看下(這個是超級祕籍)。
Usage: ab [options] [http[s]://]hostname[:port]/path Options are: -n requests Number of requests to perform -c concurrency Number of multiple requests to make -t timelimit Seconds to max. wait for responses -b windowsize Size of TCP send/receive buffer, in bytes -p postfile File containing data to POST. Remember also to set -T -u putfile File containing data to PUT. Remember also to set -T -T content-type Content-type header for POSTing, eg. 'application/x-www-form-urlencoded' Default is 'text/plain' -v verbosity How much troubleshooting info to print -w Print out results in HTML tables -i Use HEAD instead of 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. 'Apache=1234. (repeatable) -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. -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 -r Don't exit on socket receive errors. -h Display usage information (this message) -Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers) -f protocol Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)