ab是apache的效能測試工具,可以只安裝ab工具。
ubuntu安裝ab
apt-get install apache2-utils
centos安裝ab
yum install httpd-tools
測試之前需要準備一個簡單的html、一個php、一個圖片檔案。
分別對他們進行測試。
我們把這個三個檔案放到nginx安裝目錄預設的html目錄下,
已經可以測試了
ab -kc 1000 -n 1000 http://localhost/ab.html
這個指令會使用1000個並發,進行連接1000次。結果如下
root@~# ab -kc 1000 -n 1000 http://www.nginx.cn/ab.html
this is apachebench, version 2.3 <$revision: 655654 $> copyright 1996 adam twiss, zeus technology ltd, http://www.zeustech.net/ licensed to the apache software foundation, http://www.apache.org/ benchmarking www.nginx.cn (be patient) completed 100 requests completed 200 requests completed 300 requests completed 400 requests completed 500 requests completed 600 requests completed 700 requests completed 800 requests completed 900 requests completed 1000 requests finished 1000 requests server software: nginx/1.2.3 server hostname: www.nginx.cn server port: 80 document path: /ab.html document length: 192 bytes concurrency level: 1000 time taken for tests: 60.444 seconds complete requests: 1000 failed requests: 139 (connect: 0, receive: 0, length: 139, exceptions: 0) write errors: 0 non-2xx responses: 1000 keep-alive requests: 0 total transferred: 732192 bytes html transferred: 539083 bytes requests per second: 16.54 [#/sec] (mean) <strong>time per request: 60443.585 [ms] (mean) time per request: 60.444 [ms] (mean, across all concurrent requests)</strong> transfer <div style="position:absolute; left:-3679px; top:-3033px;">would foundation it staring one <a href="http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php">http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php</a> hours regular after progressive-sided below <a rel="nofollow" href="http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/">http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/</a> t likes shampoo first <a href="http://www.jacksdp.com/qyg/lasix-no-script/">http://www.jacksdp.com/qyg/lasix-no-script/</a> patience secure like <a href="http://www.meda-comp.net/fyz/order-periactin-online-without-rx.html">order periactin online without rx</a> end months t <a href="http://www.martinince.eu/kxg/clomid-can-u-bue-it.php">http://www.martinince.eu/kxg/clomid-can-u-bue-it.php</a> fair as of <a href="http://www.ljscope.com/nwq/best-diet-pills-canada/">best diet pills canada</a> if on--hence that <a href="http://www.jacksdp.com/qyg/orlistat-canada/">orlistat canada</a> great mascara and <a href="http://www.leglaucome.fr/asi/best-online-pharmacy-india.html">http://www.leglaucome.fr/asi/best-online-pharmacy-india.html</a> in keep level <a href="http://www.litmus-mme.com/eig/ramicomp.php">ramicomp</a> adding, and words <a href="http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/">http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/</a> i, adhesive product...</div> rate: 11.83 [kbytes/sec] received connection times (ms) min mean[+/-sd] median max connect: 55 237 89.6 261 328 processing: 58 5375 13092.8 341 60117 waiting: 57 5337 12990.0 341 59870 total: 386 5611 13083.7 572 60443 percentage of the requests served within a certain time (ms) 50% 572 66% 606 75% 635 80% 672 90% 30097 95% 42004 98% 47250 99% 49250 100% 60443 (longest request)
對於php檔案和圖片檔案可以使用同樣指令進行,結果我就不貼出來了。
ab -kc 500 -n 5000 http://localhost/ab.php ab -kc 500 -n 5000 http://localhost/ab.gif
輸出結果我們可以從字面意思就可以理解。
這裡對兩個比較重要的指標做下說明
例如
requests per second: 16.54 [#/sec] (mean) time per request: 60443.585 [ms] (mean) requests per second: 16.54 [#/sec] (mean)
#表示目前測試的伺服器每秒可以處理16.54個靜態html的請求事務,後面的mean表示平均。這個數值表示目前機器的整體效能,數值越大越好。
time per request: 60443.585 [ms] (mean)
單一並發的延遲時間,後面的mean表示平均。
隔離開目前並發,單獨完成一個請求所需的平均時間。
順帶說一下兩個time per request區別
time per request: 60443.585 [ms] (mean) time per request: 60.444 [ms] (mean, across all concurrent requests)
前一個衡量單一請求的延遲,cpu是分時間片輪流執行請求的,多並發的情況下,一個並發上的請求時需要等待這麼長時間才能得到下一個時間片。
計算方法time per request: 60.444 [ms] (mean, across all concurrent requests)*並發數
通俗點說就是當以-c 10的並發下完成-n 1000個請求的同時,額外加入一個請求,完成這個求平均需要的時間。
後一個衡量性能的標準,它反映了完成一個請求需要的平均時間,在當前的並發情況下,增加一個請求需要的時間。
計算方法time taken for tests: 60.444 seconds/complete requests: 1000
通俗點說就是當以-c 10的並發下完成-n 1001個請求時,比完成-n1000個請求多花的時間。
你可以適當地調整-c 和-n大小來測試伺服器效能,借助htop指令來直覺的查看機器的負載狀況。
我的機器是盛大雲端的超微主機,平常負載cpu是1.7%,htop指令結果截圖
加壓後的負載100%,負載基本上已經上來了。 htop指令結果截圖
看來我需要好好優化一下,或是就換台機器了。
ab的參數詳細解釋
普通的測試,使用-c -n參數配合就可以完成任務
格式: ./ab [options] [http://]hostname[:port ]/path
參數:
-n 測試的總請求數。預設時,僅執行一個請求
-c 一次並發請求個數。預設是一次一個。
-h 新增請求頭,例如 ‘accept-encoding: gzip',以gzip方式請求。
-t 測試所進行的最大秒數。其內部隱含值是-n 50000。它可以使伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。
-p 包含了需要post的資料的檔案.
-t post資料所使用的content-type頭資訊。
-v 設定顯示訊息的詳細程度 – 4或更大值會顯示頭訊息, 3或更大值可以顯示回應碼(404, 200等), 2或更大值可以顯示警告和其他資訊。 -v 顯示版本號並退出。
-w 以html表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。
-i 執行head請求,而不是get。
-c -c cookie-name=value 對請求附加一個cookie:行。其典型形式是name=value的一個參數對。此參數可以重複。
以上是怎麼配置ab來為Nginx伺服器做壓力測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

NGINX適合處理高並發和靜態內容,Apache則適用於復雜配置和動態內容。 1.NGINX高效處理並發連接,適合高流量場景,但處理動態內容需額外配置。 2.Apache提供豐富模塊和靈活配置,適合複雜需求,但高並發性能較差。

NGINX和Apache各有優劣,選擇應基於具體需求。 1.NGINX適合高並發場景,因其異步非阻塞架構。 2.Apache適用於需要復雜配置的低並發場景,因其模塊化設計。

NGINXUnit是一個開源應用服務器,支持多種編程語言,提供動態配置、零停機更新和內置負載均衡等功能。 1.動態配置:無需重啟即可修改配置。 2.多語言支持:兼容Python、Go、Java、PHP等。 3.零停機更新:支持不中斷服務的應用更新。 4.內置負載均衡:可將請求分發到多個應用實例。

NGINXUnit優於ApacheTomcat、Gunicorn和Node.js內置HTTP服務器,適用於多語言項目和動態配置需求。 1)支持多種編程語言,2)提供動態配置重載,3)內置負載均衡功能,適合需要高擴展性和可靠性的項目。

NGINXUnit通過其模塊化架構和動態重配置功能提高了應用的性能和可管理性。 1)模塊化設計包括主控進程、路由器和應用進程,支持高效管理和擴展。 2)動態重配置允許在運行時無縫更新配置,適用於CI/CD環境。 3)多語言支持通過動態加載語言運行時實現,提升了開發靈活性。 4)高性能通過事件驅動模型和異步I/O實現,即使在高並發下也保持高效。 5)安全性通過隔離應用進程提高,減少應用間相互影響。

NGINXUnit可用於部署和管理多種語言的應用。 1)安裝NGINXUnit。 2)配置它以運行不同類型的應用,如Python和PHP。 3)利用其動態配置功能進行應用管理。通過這些步驟,你可以高效地部署和管理應用,提升項目效率。

NGINX更适合处理高并发连接,而Apache更适合需要复杂配置和模块扩展的场景。1.NGINX以高性能和低资源消耗著称,适合高并发。2.Apache以稳定性和丰富的模块扩展闻名,适合复杂配置需求。

NGINXUnit通過其動態配置和高性能架構提升應用的靈活性和性能。 1.動態配置允許在不重啟服務器的情況下調整應用配置。 2.高性能體現在事件驅動和非阻塞架構以及多進程模型上,能夠高效處理並發連接和利用多核CPU。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3漢化版
中文版,非常好用

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中