是否使用都沒關係 Nginx的, 阿帕奇,Lighttpd或其他方式,擁有Web服務器的任何網絡管理員都希望在某個時刻知道Web服務器對給定數量的查詢的響應速度。
Apache 基準測試 + GNUPlot
這次我們將使用一個名為 Apache基準測試,儘管它的名稱中帶有“ apache”,但它不僅用於衡量Apache的性能,而且還可以用於Nginx等。 實際上,我將使用它來衡量 Nginx的.
我們還將使用 GNU繪圖,這將幫助我們用幾行代碼製作出這樣的圖形:
安裝Apache Benchmark和GNUPlot
Apache Benchmark是安裝Apache軟件包後可以使用的工具,安裝了相同名稱的軟件包後,GNUPlot將可用。 那...
在Debian,Ubuntu或類似的發行版上:
sudo apt-get install apache2 gnuplot
在諸如ArchLinux或衍生版本的發行版中:
sudo pacman -S apache gnuplot
使用Apache Benchmark
我們要做的是將特定數量的請求(100)以幾個(從20到20)為一組發送到特定站點。 我們將結果保存到.csv文件(result.csv)中,然後使用GNUPloit處理它,該行將為:
ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/
這是我在網絡上測試站點時向我顯示的輸出或日誌:
這是ApacheBench,版本2.3 <$修訂:1638069 $>版權所有1996 Adam Twiss,Zeus Technology Ltd,http://www.zeustech.net/已獲Apache軟件基金會許可,http://www.apache.org/ Benchmarking gutl.jovenclub.cu(請耐心等待).....完成 服務器軟件:nginx服務器主機名:gutl.jovenclub.cu服務器端口:80 文件路徑:/ 文檔長度:206字節並發級別:20測試時間:0.101秒完整請求:100失敗請求:27(連接:0,接收:0,長度:27,異常:0)非2xx響應:73傳輸總數: 1310933字節HTML傳輸:1288952字節 每秒請求數:993.24 [#/秒](平均) 每個請求的時間:20.136 [ms](平均值)每個請求的時間:1.007 [ms](所有所有並發請求的平均值)傳輸速率:12715.49 [Kbytes / sec]接收的連接時間(ms)最小平均值[+/- sd]中位數最大值連接:0 1 0.2 1 1處理中:1 17 24.8 4 86等待中:1 15 21.5 4 76總計:1 18 24.8 5 87在一定時間內服務的請求百分比(ms)50%5 66%6 75% 22 80%41 90%62 95%80 98%87 99%87 100%87(最長要求)
我用紅色標記了我認為最重要的內容,或多或少:
- 我們正在測試的服務器的數據以及相關的URL。
- 每秒的請求數。
- 服務器花了多少毫秒來處理請求時間最長的請求,即響應時間最長的請求。
有了這些信息,他們可以知道服務器處理該數量的請求將花費多長時間,然後他們可以添加更好的緩存系統,停用他們不使用的模塊等,然後重新運行測試並看看性能是否有所提高。
其他有用的Apache Benchmark選項或參數:
-k -H'接受編碼:gzip,deflate' :使用此ab將接受服務器已配置的緩存和壓縮,因此時間將減少。
-f 網址.txt :因此,它不僅會測試網站的索引,還會對我們在該文件中指定的URL進行測試。
反正...看看 男人ab 讓你明白。
在圖形中顯示結果:
為了將輸出結果顯示在圖像中,也就是在更直觀的媒體中進行多次,這是經理們設法理解的一切……為此,我們將像我之前所說的那樣, GNU繪圖
在我們有文件results.csv的同一文件夾中(記住,我們只是用上面的命令生成的),我們將創建一個名為gnuplot.p的文件:
nano plot.p
我們將在其中放入以下內容:
設置終端png大小600設置輸出“results.png“設置標題”100 要求, 20 並發請求“設置大小比例0.6設置網格並設置xlabel”請願書“設置ylabel”響應時間(毫秒)“情節”results.csv“使用帶有行標題的9個平滑sbezier”古特爾.jovenclub.cu"
我用紅色標記了您應經常檢查的內容。 那就是從上到下:
- 要生成的圖像文件的名稱
- 總請求數和並發請求數。
- 我們剛剛生成的文件的名稱。
- 我們正在研究的領域。
放入後,保存並退出(Ctrl + O 進而 按Ctrl + X),我們將執行以下操作:
gnuplot plot.p
瞧,這將生成具有所需名稱的圖形,我的是:
Apache Benchmark有很多選擇,我們還可以使用許多組合來使性能測試更加完善。
但這是基礎知識😉
享受您的購物之旅!
有趣的Apache基準測試,gnuplot不知道可以修改輸出樣式嗎? 我說正式報告。
來自智利的問候。
是的,網絡中有許多用於gnuplot的配置,可以通過Google搜索以查看是否找到足夠認真或專業的人來使用它,因為這是每個人的口味🙂
嗯,我現在要在運行中的虛擬apache服務器上對其進行測試,以了解GUTL的運行情況,因為它會迅速從80個請求中觸發,對嗎?讓我們看看100毫秒不是什麼都沒有,但是相比於10到70以及80到80的需求,發出90多個請求的高點吸引了我
這必須是由於隊列或同時要處理的最大線程數所致。 但是,我沒有gzip,沒有放氣,沒有緩存或其他任何東西進行了測試😉
非常有趣,特別是對於GNUPlot的使用。 從我看來,它幾乎可以用於從任何數據集中生成圖形,對嗎?...
是的,當然,您可以將數據傳遞到一個用逗號或類似內容分隔的文件中,並告訴它如何在配置文件中進行處理,然後
您好,我總是花時間閱讀此博客,但我從未對任何文章發表評論,這似乎是個好機會。
我想與您分享的是,這種類型的圖可能會被誤解,因為Apache Bench使用ttime(總時間)而不是順序時間對結果進行排序。 儘管數據仍然為真,但該圖可能無法顯示我們想要的內容。
在這裡,我將鏈接留在我閱讀的地方。
http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/
問候。
Apache Benchmark並不是衡量多核計算機上HTTP服務器性能的最佳工具,此外,只有100個具有20個並發連接的請求是一個非常弱的測試,更現實的情況是1,000個或10,000個有100個並發連接的請求(眾所周知Nginx是每秒能夠處理10,000個以上請求的應用程序之一),為此,最好使用weighttp之類的工具,該工具是針對具有多個內核的團隊而設計的,並且使用更快的epoll,這與Apache不同使用單線程和效率較低的事件處理機制的Bench。
我的觀點是,假設服務器只有4個核心:
weighttp -n 10000 -c 100 -t 4 -k“ http://our-web-site.com/”
大家好,
使用gnuplot繪製圖形(從CSV)時,會出現以下錯誤,您能告訴我如何解決嗎?
“ Plot.p”,第8行:警告:正在跳過沒有有效點的數據文件
使用9個平滑sbezier和標題為«AB-localhost / web»的線繪製«graph.csv»
^
“ Plot.p”,第8行:x範圍無效
使用gnuplot,我還可以生成HTML頁面嗎?