MACOSXApacheab壓力測試
MACOSX Apache ab壓力測試
@Date 2018.12.24
一. 介紹
- ab是apachebench命令的縮寫, 預設mac下都已經安裝了, 但是預設版本會有幾個問題, 故寫此文章進行總結
二. 問題
1. apr_socket_recv: Connection reset by peer (xx)
- 原因 : 此問題是apache的bug, 在高版本上已經解決, 故我們需要在mac上升級ab的版本
-
解決 :
- 現在較高版本的apache, 下載地址(http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.34.tar.gz)
-
現在apache依賴的包,分別如下
-
安裝(prefix是指向想要安裝的路徑)
-
APR :
- 下載的APR壓縮包解壓縮, 進入APR目錄
- 執行 ./configure –prefix=/usr/local/apr
- 使用sudo許可權執行 make
- 使用sudo許可權執行 make install
-
APR-Util
- 同樣進入解壓後的apr-util目錄
- 執行 ./configure –prefix=/usr/local/apr-util -with-apr=/usr/local/apr/ (此命令依賴apr)
- 使用sudo許可權執行 make
- 使用sudo許可權執行 make install
-
pcre
- 同樣進入解壓後的pcre目錄
- 執行 ./configure –prefix=/usr/local/pcre
- 使用sudo許可權執行 make
- 使用sudo許可權執行 make install
-
安裝ab
- 進入解壓後的httpd-2.3.34目錄
- sudo許可權建立/usr/local/httpd/目錄
- 依賴上面安裝好的各種包, 執行以下命令 ./configure –prefix=/usr/local/httpd/ -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre/
- 使用sudo許可權執行 make
-
-
替換Mac預設的ab
- 在上述3.4中, httpd目錄下. 執行以下命令 sudo cp support/ab /usr/sbin .將編譯後的最新ab命令copy到系統中.
-
此時會遇到最新MacOSX中許可權問題, 請看下文[許可權異常 Operation not permitted]()
2. apr_poll: The timeout specified has expired (70007)
- 原因 : 高版本的ab需要增加-s引數, 執行超時時間, 否則會30s則超時
-
解決 :
- ab –help 查詢命令幫助
- -s timeout 使用ab命令時,增加-s引數
3. MacOSX中/usr/sbin報錯, Operation not permitted
- 原因 : 系統增加了Rootless機制機制,防止惡意程式執行高許可權命令
-
解決 :
- 重啟Mac系統, 在重啟過程中一直按住Command+R, 進入恢復模式.
-
在恢復模式中無需點選其它操作, 在選單欄中開啟Terminal, 執行以下命令 csrutil disable. 解鎖dtrace限制
三. ab命令使用
1. 引數詳解
# 顯示用法資訊,其實就是ab -help
-h
# 列印版本號並退出
-V
# 即requests,用於指定壓力測試總共的執行次數
-n
# 即concurrency,用於指定壓力測試的併發數
-c
# 即timelimit,等待響應的最大時間(單位:秒)
-t
# 即windowsize,TCP傳送/接收的緩衝大小(單位:位元組)
-b
# 即postfile,傳送POST請求時需要上傳的檔案,此外還必須設定-T引數
-p
# 即putfile,傳送PUT請求時需要上傳的檔案,此外還必須設定-T引數
-u
# 即content-type,用於設定Content-Type請求頭資訊,例如:application/x-www-form-urlencoded,預設值為text/plain
-T
# 即verbosity,指定列印幫助資訊的冗餘級別
-v
# 以HTML表格形式列印結果
-w
# 使用HEAD請求代替GET請求
-i
# 插入字串作為table標籤的屬性
-x
# 插入字串作為tr標籤的屬性
-y
# 插入字串作為td標籤的屬性
-z
# 新增cookie資訊,例如:"key=value"(可以重複該引數選項以新增多個)
-C
# 新增任意的請求頭HEADER,請求頭將會新增在現有的多個請求頭之後(可以重複該引數選項以新增多個)
-H
# 新增一個基本的網路認證資訊,使用者名稱和密碼之間用英文冒號隔開
-A
# 新增一個基本的代理認證資訊,使用者名稱和密碼之間用英文冒號隔開
-P
# 指定使用的代理伺服器和埠號
-X
# 使用HTTP的KeepAlive特性
-k
# 不顯示百分比
-d
# 不顯示預估和警告資訊
-S
# 輸出結果資訊到gnuplot格式的檔案中
-g
# 輸出結果資訊到CSV格式的檔案中
-e
# 指定接收到錯誤資訊時不退出程式
-r
相關文章
- 壓力測試
- sysbench 壓力測試
- ORACLE壓力測試Oracle
- laravel壓力測試Laravel
- (一)效能測試(壓力測試、負載測試)負載
- RestCloud測試平臺,支援壓力測試RESTCloud
- 軟體壓力測試知識分享,2022好用壓力測試工具有哪些?
- 讓測試事半功倍軟體壓力測試工具分享,壓力測試報告怎麼收費?測試報告
- Jmeter效能測試 —— 壓力模式JMeter模式
- oracle壓力測試之orastress!OracleAST
- Apache Bench Web 壓力測試ApacheWeb
- apache ab壓力測試工具-批次壓測指令碼Apache指令碼
- 軟體壓力測試怎麼做?出具壓力測試報告軟體測評中心測試報告
- 軟體壓力測試流程和測試工具分享,讓你寫壓力測試報告再也不愁測試報告
- 壓力測試相關指標指標
- 使用Gatling做web壓力測試Web
- oracle壓力測試之orabm(二)Oracle
- 10大主流壓力測試工具
- oracle壓力測試之orabm(三)Oracle
- oracle壓力測試之orabm(一)Oracle
- 效能壓力測試JMeter替代:LoadjitsuJMeter
- Android Monkey 壓力測試 介紹Android
- 使用JMeter進行壓力測試JMeter
- 介面測試,負載測試,併發測試,壓力測試區別負載
- 軟體產品為什麼要做壓力測試?壓力測試報告如何獲取?測試報告
- 開源的負載測試/壓力測試工具 NBomber負載
- Taurus.MVC 效能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET 版本MVCLinux
- 效能測試、負載測試、壓力測試有什麼區別?負載
- 後端相關技能(六):壓力測試後端
- App 壓力測試學習總結APP
- apache-ab 壓力測試詳解Apache
- Linux下使用壓力測試工具stressLinux
- nodejs版的websocket壓力測試工具NodeJSWeb
- Taurus.MVC 效能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本MVCLinux
- jmeter壓力測試實現負載均衡JMeter負載
- 10大主流壓力測試工具推薦
- APP壓力測試6--monkeyrunner實踐APP
- 超實用壓力測試工具-ab工具