基於linux的Web伺服器效能測試

來源:互聯網
上載者:User
一、基於 linuxWeb伺服器 的重要性

  linux作為一種免費的開源操作系統,正越來越受到人們的重視。隨著穩定的Linux 2.4核心發布日期的臨近和Intel IA-64構架的推出,Linux在伺服器作業系統市場所佔的份額會繼續擴大,那麼基於Linux的應用也就會日益豐富。而在Internet時代,作業系統最廣闊的市場空間就是Web伺服器,正是遍布全球的千千萬萬的Web伺服器才構成了網際網路資訊資源的基礎,而Web伺服器效能的優劣直接關係到人們對資訊資源的利用效率,因此對Web伺服器效能的測試就顯得非常必要。

   二、以運行在linux平台的Apache伺服器為例,談Web伺服器的效能測試

  Web伺服器的效能不僅僅和Web伺服器軟體本身有關,它還和伺服器硬體設計水平和伺服器 作業系統有很大的關係,因此Web伺服器效能測試是一項綜合效能的測試。目前在全球Web伺服器軟體市場上Apache伺服器佔到了60%以上的市場份額。下面就以運行在linux平台上的Apache伺服器為例,談談如何進行Web伺服器效能的測試。

  1.Web伺服器效能測試的工具

  Web伺服器的效能測試工具很多,比較著名的有WebStone和WebBench,這兩個工具雖然實現方法有所不同,但是測試單位是相同的,即都是測試每秒最大請求響應數和資料輸送量。

  2.Apache伺服器支援SSL協議的配置

  隨著 電子商務的發展,webBench2.0還增加了電子商務測試集,這就需要Apache伺服器支援SSL(Security Socket Layer)。但是Apache伺服器在預設情況下並沒有提供對SSL的有效支援,因此要想利用WebBench測試Apache伺服器的電子商務效能,就需要重新設定Apache伺服器使之支援SSL。下面就以Redhat linux6.1,Apache1.3.9為平台講一下具體的配置方法:

  1)下載Apache1.3.9

  (http://www.apache.org)

  Openssl-0.9.5

  (http://www.openssl.org)

  Mode-ssl-2.6.0

  (http://www.modssl.org)

  2)解壓縮:

  # tar zxvf apache*.tgz

  # tar zxvf openssl*.tgz

  # tar zxvf modssl*.tgz

  3)更改perl可執行檔的目錄

  # cd /openssl*/util

  把perlpath.pl檔案開始的#!/usr/local/bin/perl改成現在作業系統中perl的目錄,在RedHat linux中是#!/usr/bin/perl。然後運行./perlpath.pl /usr/bin即可。

  4)編譯配置

  # cd openssl-0.9.x

  # sh config

  -fPIC

  # make

  # make test

  # cd mod-ssl*

  # ./configure

  --with-apache=/apache_1.3.12 --with-ssl=/openssl-0.9.5

  --prefix=/apache_1.3.12

  # cd apache_1.3.12

  # make

  # make certificate

  # make install

  在make certificate時會有很多的選項,主要的是選擇密碼編譯演算法,包括RSA(它是由R. Rivest、A. Shamir和L. Adleman三位教授於1977年提出的公開密鑰密碼系統,它的取名就是來自於這三位發明者的姓的第一個字母)和DSA(Digital Signature Algorithm),這時選擇RSA即可,接下來會有包括國家名,單位名,認證有效期間等等需要輸入的資訊。這些步驟完成之後,會產生一個server.crt和server.key檔案,注意server.key檔案一定要保密,接下來就是輸入串連使用者名稱和口令。

  以上工作全部結束後,會產生三個伺服器認證檔案,他們分別是:

  /apache*/conf/ssl.key/server.key

  /apache*/conf/ssl.crt/server.crt

  /apache*/conf/ssl.csr/server.csr

  # cd /mod-ssl*

  # ./configure

  --with-apache=/apache_1.3.12

  --with-crt =/apache_1.3.12/conf/ssl.crt/server.crt

  --with-key=/apache_1.3.12/conf/ssl.key/server.key

  # cd /apache*

  # SSL-BASE=/openssl*

  ./configure

  --enable-module=ssl

  --prefix=/apache_1.3.12

  # make

  # make certificate

  # make install

  3.測試Web伺服器的輸送量和每秒最大請求響應數

  全部編譯完成之後的apache就可以支援ssl,但是要想進行WebBench的測試,還需要配置/apache/conf/http.conf檔案,最關鍵的是要開啟ssl的監聽連接埠443,並且把documentroot和Webbench3.0所在的目錄對應起來。然後在/apache*/bin/下運行apachectl startssl執行電子商務子集測試,運行 apachectl start執行普通的測試,通過控制台和用戶端WebBench軟體的配合就可以測試出當前系統配置下Web伺服器的輸送量和每秒最大請求響應數。

  三、WEB伺服器測試結果分析

  1.SMP技術與伺服器叢集技術

  SMP(Symmetric MultiProcessing),即:對稱多處理。指在一個電腦上彙集了一組處理器(多CPU)。它們共用記憶體及匯流排結構,系統將處理任務隊列對稱地分佈於多個CPU上,從而極大地提高了系統的資料處理能力。Windows2000採用了SMP,一般情況下,雙CPU的伺服器比單CPU伺服器效能提高70%左右。而linux系統對於SMP技術並不敏感,根據測試結果顯示,使用雙PentiumIII800CPU比單CPU的Web伺服器效能沒有顯著的提高。

  與SMP相比,叢集技術更易於實現,它開發周期短,而且造價低。雖然節點之間資料轉送的速度比SMP匯流排低,但是它的可擴充性遠遠超過了 SMP,在一個叢集中可以很輕鬆地支援256個CPU。同時,由於各節點之間使用了鬆散耦合的方式串連,可以在系統正在啟動並執行情況下方便地更換或添加節點,因此它的可靠性與可擴充性也優於目前的SMP技術,但是同時我們應該注意到的是叢集技術的主要局限在網路的瓶頸上,對於關鍵的節點甚至使用千兆網,這是一般使用者無法承受的。因此在選擇上應該考慮到這個問題

  2.系統記憶體的影響

  在linux系統下,有一點需要注意:對於某些BIOS來說,如果超過64MB記憶體就需要在LILO.CONF中加入擴充記憶體的命令,否則伺服器記憶體顯示只有64MB。我們對64MB記憶體和128MB記憶體的伺服器進行測試,結果表明 :記憶體對Web效能的影響是巨大的,尤其是在大負載下的效能提高得很快。

  筆者認為,對於部門級伺服器而言,由於CPU速度、網路頻寬、磁碟效能的限制,512MB-1G記憶體是比較適宜的。

  3.64位作業系統與64位伺服器

  對於linux界來說Tru64 Linux系統的推出是一件大事。我們分別在天兆陽光的Alpha、杜文的SparcII的伺服器上作了RedHat6.2的Web效能測試。但是測試結果並非像想象中的那樣令人滿意。筆者分析有以下幾個原因:首先,不合時宜的測試集。我們所使用的測試載入器WebBench還沒有64位Linux的測試集,沒有充分考慮到64位的高頻寬、海量儲存等優勢。第二,Tru64 Linux系統與64位硬體系統的配合還存在一定的問題,它畢竟不象Solaris是SUN定製開發的支援64位元運算的作業系統。

  4.Apache 伺服器的最佳化

  Apache伺服器系統的優勢之一就是可以對其進行最佳化。筆者認為主要分為應用級和代碼級兩種最佳化方式。應用級最佳化比較簡單,主要是對HTTPD.conf、ACCESS.conf、SRM.conf三個設定檔中的參數進行配置。本次測試中沒有對系統作最佳化,只是針對64位伺服器系統效能好的特點,將最大進程數從預設的150提高到了1000,減少了CPU殺掉進程的時間,測試後發現Web效能提高了10%。而對於代碼級的最佳化相對複雜得多,並且可以參考的執行個體不多,希望在以後的測試中進一步體會。

  總之,linux作業系統應用於Web伺服器有許多優勢,如:伺服器大負載穩定性好等,相信許多Web使用者都有很深的體會。

   WebBench介紹

  WebBench是一個主要用來考查Web伺服器效能的測試載入器。它的測試結構與ServerBench相同,同樣採用伺服器、用戶端和控制台三種方式。 WebBench 在Web伺服器端安裝測試檔案,這些檔案主要由HTML、GIF和可執行檔組成,利用用戶端電腦來類比Web瀏覽器向Web伺服器發送請求。但是,在用戶端並不使用真正的瀏覽器,也不真正顯示伺服器發送的回應檔,而是在收到Web伺服器的響應後立即紀錄該響應的相關資訊,並立即發送另外一個請求。通過這種方法來測試Web伺服器每秒處理的請求數和資料輸送量。WebBench測試可以分為普通測試和電子商務測試:普通的測試集由靜態和動態請求組成;而電子商務測試集由8%的安全請求和92%的非安全請求組成。在電子商務測試中,Web伺服器需要支援SSL(Secure Socket Layer)協議,它是Web伺服器上使用廣泛的基本安全措施,可向基於TCP/IP協議的Client/Server應用程式提供Client/Server端的鑒別、資料完整性和資訊機密性等安全措施。

   ServerBench介紹

  ServerBench是一個著名應用伺服器效能測試工具,它主要在Client/Server環境下測試應用伺服器的處理器效能、網路效能和系統效能。其中,應用伺服器系統的綜合效能測試(sys)是ServerBench最基準的測試。這次測試我們也主要測試了綜合效能(sys)和處理器效能(proc)兩項。

  ServerBench的工作原理就是在伺服器端啟動一個主進程,將主進程與控制台相連。對於每一個和伺服器相連的用戶端,該主進程都建立一個服務進程,服務進程負責等待用戶端的請求並作相應的處理,主進程和服務進程通過共用記憶體來交換資料。控制台用來定義測試集,用這個測試載入器,客戶把各種交易處理發送到伺服器,每個事務都需要應用伺服器執行磁碟的讀寫、資料操作和Client/Server之間的網路通訊等一系列操作,來給伺服器的不同子系統增加壓力,並以每秒完成的交易處理量得出測試分數。

效能測試

TAG: 伺服器 效能測試

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.