1. 程式人生 > >【Apache】從Apache官網下載windows版apache伺服器,並用AB進行壓力測試

【Apache】從Apache官網下載windows版apache伺服器,並用AB進行壓力測試

1、下載穩定版2.2.31

    http://httpd.apache.org/


2.2.*和2.4.*區別?

    httpd-2.2.x(prefork)
    httpd-2.4.x(event) 編譯時可以使用--with-mpm=prefork手動指定其使用prefork
    PHP官方推薦httpd使用prefork(php能更穩定地執行),而不是執行緒化的worker和event,httpd-2.4.x預設使用執行緒化的event作為mpm.
    Linux上很多PECL庫都是非執行緒安全的,libphp5.so線上程化的httpd(event/worker)中執行可能會出現一些問題,為了保持相容性和穩定性,PHP一般還是使用httpd-2.2.x(prefork)這個分支.




apache本身不提供已編譯的安裝包,只提供原始碼,如果你自己無法編譯,可以選擇下面這些官方推薦的第三方提供編譯的網站。
其中後兩個是有名的wamp以及xampp整合環境,如果只想下載apache可以選擇前三個網站,這裡我們第一個ApacheHaus為例。


選擇版本進行下載(Apache 2.2 VC9)



2、使用

(1)解壓到指定目錄


(2)命令列下進入到apache下面的bin目錄,輸入:httpd -k install,把apache安裝成windows後臺服務。

(3)利用ApacheMonitor來啟動你的apache

3、說明

(1)修改埠

預設80埠,若埠被其他應用程式佔用:(檢視80埠是否被佔用,命令列下輸入:netstat -aon|findstr "80"

    開啟apache目錄下的conf/httpd.conf  搜尋   "Listen 80";
    修改為Listen 8088;
    儲存之後再重新啟動apache。

(2)httpd -k install 輸入該命令後檢視服務是否安裝成功
開始-->執行-->services.msc-->確定
開啟後如果在服務列表能夠看到apache字樣,說明,服務安裝成功,可以直接點選左邊的啟動按鈕來啟動服務

(3)如何啟動、停止、重啟apache?

服務 services.msc;

找到服務後,右鍵操作


4、使用AS進行壓力測試

        壓力測試通過確定一個系統的瓶頸或者不能接收的效能點,來獲得系統能提供的最大的服務級別的測試。通俗地講,壓力測試是為了發現在什麼條件下您的應用程式的效能會變得不可接受。再簡單點,就是你網站的效能的一個評定,效能由本身程式和網站伺服器共同決定。 而進行壓力測試,就是為了讓你更好得掌握網站的各個資訊。

Apache自帶工具AB是什麼?

Apache Benchmark簡稱為ab,是apache自帶的用於HTTP Server測試的工具。它可以接受單一的URL,然後重複地按照指定的多個獨立執行緒的方式載入,並使用不同的命令列引數控制訪問的次數、最大的併發訪問數等。

AB怎麼用?

cmd,進入apache目錄的bin目錄下:

# ab -n1000 -c10 http://192.168.116.193/index.html    #表示每次併發10個請求,總共請求1000次

This is ApacheBench, Version 2.3<$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus TechnologyLtd, http://www.zeustech.net/Licensed to The Apache Software Foundation,http://www.apache.org/Benchmarking 192.168.116.193 (be patient)Completed 100 requestsCompleted 200 requestsCompleted 300 requestsCompleted 400 requestsCompleted 500 requestsCompleted 600 requestsCompleted 700 requestsCompleted 800 requestsCompleted 900 requestsCompleted 1000 requestsFinished 1000 requestsServer Software:        nginx/1.0.15               #平臺apache 版本Server Hostname:        192.168.116.193            #伺服器主機名Server Port:            80                         #伺服器埠Document Path:          /index.html                #測試的頁面Document Length:        3698 bytes                 #測試頁面大小Concurrency Level:      10                         #併發數Time taken for tests:   0.577 seconds              #整個測試耗時Complete requests:      1000                       #總共完成的請求數量Failed requests:        0                          #表示失敗的總請求數,這裡的失敗指請求在連線伺服器、傳送資料、接收資料等環節發生異常,以及無響應超時等情況Write errors:           0                          #網路連線寫入錯誤數Total transferred:      3917820 bytes              #測試過程中產生的網路傳輸總量HTML transferred:       3705396 bytes              #測試過程中產生的HTML傳輸量Requests per second:    1733.55 [#/sec] (mean)     #表示伺服器吞吐量,每秒事務數,括號中的 mean 表示這是一個平均值Time per request:       5.768 [ms] (mean)          #表示使用者請求的平均響應時間,後面括號中的mean表示這是一個平均值Time per request:       0.577 [ms] (mean, across all concurrentrequests)   #表示伺服器請求平均處理時間,即實際執行時間的平均值Transfer rate:          6632.57 [Kbytes/sec] received      #表示這些請求在單位時間內從伺服器獲取的資料長度,可以幫助排除是否存在網路流量過大導致響應時間延長的問題Connection Times (ms)min  mean[+/-sd] median   maxConnect:        0   2   5.5      2     85Processing:     1   3   6.3      2     84Waiting:        0   2   5.1      2     82Total:          2   5   8.8      4    100#網路上消耗的時間的分解,表示這些請求在單位時間內從伺服器獲取的資料長度Percentage of the requests served within acertain time (ms)50%      466%      575%      580%      590%      695%      998%     1999%     80100%   100 (longest request)#整個場景中所有請求的響應情況。在場景中每個請求都有一個響應時間,其中50%的使用者響應時間小於4毫秒,60%的使用者響應時間小於5毫秒,最大的響應時間小於100 毫秒

 Ab命令引數註釋:

  -n    #指定在測試會話中所執行的請求個數。預設時,僅執行一個請求。 

  -c    #指定一次產生的請求個數。預設是一次一個。

  -t    #測試所進行的最大秒數。其內部隱含值是-n 50000。它可以使對伺服器的測試限制在一個固定的總時間以內。預設時,沒有時間限制。

  -p    #包含了需要POST的資料的檔案.

  -T    #POST資料所使用的Content-type頭資訊。

  -v    #設定顯示資訊的詳細程度 - 4或更大值會顯示頭資訊, 3或更大值可以顯示響應程式碼(404, 200等), 2或更大值可以顯示警告和其他資訊。 -V 顯示版本號並退出。

  -w    #以HTML表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。

  -I    #執行HEAD請求,而不是GET。