Apache Benchmark + GNUPlot:測量和繪製Web服務器的性能圖

是否使用都沒關係 Nginx的, 阿帕奇,Lighttpd或其他方式,擁有Web服務器的任何網絡管理員都希望在某個時刻知道Web服務器對給定數量的查詢的響應速度。

託管服務服務器管理e1368625038693

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軟件包,我們不需要啟動它或配置其他任何東西,只需安裝就足夠了。

使用Apache Benchmark

我們要做的是將特定數量的請求(100)以幾個(從20到20)為一組發送到特定站點。 我們將結果保存到.csv文件(result.csv)中,然後使用GNUPloit處理它,該行將為:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

將最終的/放在要測量的站點的URL中非常重要。

這是我在網絡上測試站點時向我顯示的輸出或日誌:

這是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(最長要求)

我用紅色標記了我認為最重要的內容,或多或少:

  1. 我們正在測試的服務器的數據以及相關的URL。
  2. 每秒的請求數。
  3. 服務器花了多少毫秒來處理請求時間最長的請求,即響應時間最長的請求。

有了這些信息,他們可以知道服務器處理該數量的請求將花費多長時間,然後他們可以添加更好的緩存系統,停用他們不使用的模塊等,然後重新運行測試並看看性能是否有所提高。

我建議運行測試兩次或2次,以便創建類似邊距的內容,因為連續兩次測試的結果很少相同。

其他有用的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"

我用紅色標記了您應經常檢查的內容。 那就是從上到下:

  1. 要生成的圖像文件的名稱
  2. 總請求數和並發請求數。
  3. 我們剛剛生成的文件的名稱。
  4. 我們正在研究的領域。

放入後,保存並退出(Ctrl + O 進而 按Ctrl + X),我們將執行以下操作:

gnuplot plot.p

瞧,這將生成具有所需名稱的圖形,我的是:

結果2

結束!

Apache Benchmark有很多選擇,我們還可以使用許多組合來使性能測試更加完善。

但這是基礎知識😉

享受您的購物之旅!


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   舊金山 他說:

    有趣的Apache基準測試,gnuplot不知道可以修改輸出樣式嗎? 我說正式報告。

    來自智利的問候。

    1.    KZKG ^ Gaara 他說:

      是的,網絡中有許多用於gnuplot的配置,可以通過Google搜索以查看是否找到足夠認真或專業的人來使用它,因為這是每個人的口味🙂

  2.   Wolf119 他說:

    嗯,我現在要在運行中的虛擬apache服務器上對其進行測試,以了解GUTL的運行情況,因為它會迅速從80個請求中觸發,對嗎?讓我們看看100毫秒不是什麼都沒有,但是相比於10到70以及80到80的需求,發出90多個請求的高點吸引了我

    1.    KZKG ^ Gaara 他說:

      這必須是由於隊列或同時要處理的最大線程數所致。 但是,我沒有gzip,沒有放氣,沒有緩存或其他任何東西進行了測試😉

  3.   查理·布朗 他說:

    非常有趣,特別是對於GNUPlot的使用。 從我看來,它幾乎可以用於從任何數據集中生成圖形,對嗎?...

    1.    KZKG ^ Gaara 他說:

      是的,當然,您可以將數據傳遞到一個用逗號或類似內容分隔的文件中,並告訴它如何在配置文件中進行處理,然後

  4.   阿道夫 他說:

    您好,我總是花時間閱讀此博客,但我從未對任何文章發表評論,這似乎是個好機會。
    我想與您分享的是,這種類型的圖可能會被誤解,因為Apache Bench使用ttime(總時間)而不是順序時間對結果進行排序。 儘管數據仍然為真,但該圖可能無法顯示我們想要的內容。
    在這裡,我將鏈接留在我閱讀的地方。
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    問候。

  5.   雨果 他說:

    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/”

  6.   信仰 他說:

    大家好,
    使用gnuplot繪製圖形(從CSV)時,會出現以下錯誤,您能告訴我如何解決嗎?

    “ Plot.p”,第8行:警告:正在跳過沒有有效點的數據文件

    使用9個平滑sbezier和標題為«AB-localhost / web»的線繪製«graph.csv»
    ^
    “ Plot.p”,第8行:x範圍無效

    使用gnuplot,我還可以生成HTML頁面嗎?