天天看點

ab壓力測試及Xcache

使用ab進行對頁面壓力測試

    ab是apache自帶的一個很好用的壓力測試工具,當安裝完apache的時候,就可以在bin下面找到ab

    我們可以模拟100個并發使用者,對一個頁面發送1000個請求

#ab -c 100 -n 1000 http://192.168.0.2/phpmyadmin
請求總數1000次,每次并發100      
##首先是apache的版本資訊 
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, 
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking 192.168.0.2 (be patient)
 
Server Software:        Apache/2.4.9  //版本号
Server Hostname:        192.168.0.2   //請求的主機
Server Port:            80            //通路的端口
 
Document Path:          /phpmyadmin   //網站的存放的路徑
Document Length:        208 bytes     //頁面長度
 
Concurrency Level:      100           //并發100
Time taken for tests:   0.543 seconds //使用的的時間
Complete requests:      1000          //請求的總數
Failed requests:        0             //失敗請求
Non-2xx responses:      1000   
Total transferred:      396000 bytes  //總共傳輸位元組數,包含http的頭資訊等
HTML transferred:       208000 bytes  //html位元組數,實際的頁面傳遞位元組數
Requests per second:    1842.10 [#/sec] (mean)  //每秒多少請求,這個是非常重要的參數數值,伺服器的吞吐量 
Time per request:       54.286 [ms] (mean)  //使用者平均請求等待時間 
Time per request:       0.543 [ms] (mean, across all concurrent requests)    //伺服器平均處理時間,也就是伺服器吞吐量的倒數 
Transfer rate:          712.37 [Kbytes/sec] received  //每秒擷取的資料長度
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   18  11.4     13      68
Processing:     3   35  73.8     14     449
Waiting:        0   31  73.9     11     446
Total:         15   53  77.0     27     466
 
Percentage of the requests served within a certain time (ms)
  50%     27    //50%的請求在27ms内傳回
  66%     40
  75%     45
  80%     53
  90%     80
  95%    183
  98%    357
  99%    463
 100%    466 (longest request)      

    這裡我配置了一個httpd+php+mysql的環境,裝了一個phpmyadmin,然後對網頁進行壓力測試,如果大家要是測試的話就要從小的并發量開始測,我就是閑着沒事幹,弄了個總量5000,并發500的,結果就悲劇了,伺服器直接卡死,網頁重新整理刷不出來,被迫關機。造成這種局面的根本所在就是,伺服器的配置無法對大量的并發請求及時響應,如果有很多人通路這個網站,那麼打開的速度就很慢,對客戶的感官造成了影響。

ab壓力測試及Xcache
ab壓力測試及Xcache
ab壓力測試及Xcache

PHP加速器

    為了提高伺服器的通路量我們可以配置php加速器Xcache,用緩存來提高頁面的通路速度

    Xcache是開源的opcode和var的緩存器,它可以加速PHP的原因就是Xcache通過緩存使用者已經請求的PHP編譯結果,将PHP編譯緩存儲存在伺服器的記憶體中以便使用者再次請求同樣PHP解析時不再用PHP再次編譯直接從Xcache緩存結果中讀取。避免PHP再次編譯給伺服器帶來過大的負載。

    編譯Xcache

    編譯安裝的時候,xcache是作為php的子產品來使用的,編譯的時候要指明php config的路徑

# /usr/local/php/bin/phpize在編譯之前,要用這個指令來生成configure檔案,因為,解壓之後的檔案裡沒有configure檔案,是以,要用這個指令來生成configure檔案。再執行編譯

ab壓力測試及Xcache

    來看一下phpize的幫助文檔

#man -M /usr/local/php/php/man/ phpize      

    因為上一次編譯php的時候沒有加入man手冊,是以在這裡必須使用man –M,提示說準備一個php擴充來實作編譯

ab壓力測試及Xcache
#tar xf xcache-3.1.0.tar.gz
#cd xcache-3.1.0
#/usr/local/php/bin/phpize      
ab壓力測試及Xcache
#./configure --enable-xcache --with-phpconfig=/usr/local/php/bin/php-config
#make && make install      

    建立一個目錄,把xcache.ini複制到建立的目錄中

#mkdir /etc/php.d
#cp xcache.ini /etc/php.d      

    接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,修改為如下行:

    extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

ab壓力測試及Xcache

    檢視php顯示界面裡是否有xcache 

ab壓力測試及Xcache

    這就說明Xcache已經添加進php中了

    現在再來測試一下,看看通路速度有何改變

ab壓力測試及Xcache

    看着這個結果可以跟上面測試的對比一下,可以明顯體驗到php加速器的重要性。

伺服器狀态

    mod_status子產品可以讓管理者檢視伺服器的執行狀态,它通過一個HTML頁面展示了目前伺服器的統計資料。這些資料通常包括但不限于:

        1.處于工作狀态的worker程序數;

        2.空閑狀态的worker程序數;

        3.每個worker的狀态,包括此worker已經響應的請求數,及由此worker發送的内容的位元組數;

        4.目前伺服器總共發送的位元組數;

        5.伺服器自上次啟動或重新開機以來至目前的時長;

        6.平均每秒鐘響應的請求數、平均每秒鐘發送的位元組數、平均每個請求所請求内容的位元組數;

    啟用狀态頁面的方法很簡單,隻需要在主配置檔案中添加如下内容即可:

        <Location /status>

            SetHandler server-status

            Require all granted

        </Location>

繼續閱讀