劉力力
樊建平
(中國科學院計算技術研究所 北京 100080)
摘 要 網絡用戶數量的激增使得單機網絡服務器已經不能滿足用戶需求,而通常的多機結構又具有維護代價高,負載不均衡等缺陷,使用Cluster結構加上可擴展軟件構成的單一入口點機群系統卻可以很好地解決這一問題。文中介紹了在曙光2000-II型大規模并行計算機上采用該結構構造而成的多節點Web服務器和Email服務器,并對它們的性能進行了評測。多節點Web服務器使用SPEC公司開發的SpecWeb99評測,而Email性能則用國家智能機研究開發中心構造的Email評測軟件,并通過對評測結果的分析,證明了該結構的優秀可擴展性能。
關鍵詞 性能評測,Cluster系統,可擴展性軟件,Web服務器,Email服務器
(The Institute of Computing Technology, The Chinese
Academy of Sciences, Beijing 100080)
Abstract The rapidly increased amount of web users makes single-node web server out of date and the traditional multi-node systems have the defects of difficult maintenance and imbalance traffic. The systems with single entry point, which is made up of cluster system and scalable software, can meet these needs. This paper introduces the multi-node web server and email server, which are implemented in Dawning 2000-II. Their performance abilities are evaluated. SpecWeb99 is used as evaluating tools for the performance of web server, the email performance evaluating system is constructed by NCIC (National Center for Intelligent Computing systems) and their results show the excellent scalability of this architecture.
Key words performance evaluation, cluster system, scalable software, web server, email server
網絡用戶數量高速增長使任何單機的網絡服務器都不能很好的滿足用戶需求,網絡服務商不得不增加服務器的數量。但是增加獨立服務器降低了系統的可擴展性能,增加了系統管理員的維護負擔,而且多個服務器使用不同的入口,很可能引起負載的極度不均衡。而如果采用Cluster結構加上可擴展軟件構成單一入口的服務器系統便能很好地解決這些問題。本文介紹了在曙光2000-II型大規模并行機上采用該結構實現單一入口點的Web服務器和Email服務器,評測了它們的性能特征,證實了該結構具有良好的可擴展性能。
Cluster結構的機群系統是一組物理上通過局域網絡或高帶寬交叉開關連接起來的計算機集合,每個計算機稱為一個節點。每個節點含有自己的操作系統,內存,硬盤以及網卡,是一個可獨立運行的計算機系統?;?/span>Cluster結構的Web或Email服務器就是在每個節點上都安裝一套Web或Email服務軟件,實現了Web和Email服務器的并行化,利用可擴展性軟件對這些節點進行管理。
本文的評測結果是在曙光2000-II型機上獲得。其中服務器節點的配置為雙CPU的PowerPC主板(200MHz ,
下面介紹支持多節點Web服務器的可擴展軟件程序包PowerRouter和支持Email服務器的程序包MailProxy。
圖3.1 |
PowerRouter運行于系統的核心態,紀錄了各個服務器的負載情況,并分派任務。當一個請求到達時,PowerRouter根據請求和服務器的負載,選擇一個服務器,修改請求中目的地址為選中服務器,傳送用戶請求,后續的操作便可以在用戶和服務器之間直接進行,如圖3.1所示??梢钥闯?,在機群系統上用PowerRouter實現的單一入口點不僅僅為用戶提供一個虛擬的IP,屏蔽了其后龐大的網絡機群,還起到監控系統和負載平衡的作用。這是因為PowerRouter是用戶訪問機群的唯一入口,機群內部各節點的任務都來源于PowerRouter的分派。因此,PowerRouter能夠明了系統內部各節點的狀態并實現適當的負載平衡機制,使機群Web服務器能夠具有很高的性能。
MailProxy作為郵件收發的代理,包含POP3代理和SMTP代理兩部分,還包含一個數據庫,記錄所有用戶的名稱以及為該用戶服務的服務器。當用戶提出Mail請求時,MailProxy首先根據用戶名稱查詢數據庫,得到合適的郵件服務器,并在用戶和該服務器之間傳遞信息。和PowerRouter不同,在交互過程中,MailProxy始終作為用戶和Mail服務器之間的中介存在。在用戶看來,只有MailProxy的地址可見,多個Mail服務器的地址被屏蔽。如圖3.2所
圖3.2 |
示,由于MailProxy直到該次Mail操作結束之前不會釋放資源,因此占用資源較多,時間也較長,于是一個MailProxy不可能為過多的Mail服務器服務。如果系統具有較多的Mail服務器,則必須設置兩個甚至多個MailProxy。在這種情況下,為了繼續保持Mail系統單一入口的特點,在MailProxy之上就需要增加一個PowerRouter層。由PowerRouter首先在多個MailProxy中選擇一個為用戶服務。
§4.1 評測工具的選擇
基于HTTP協議的評測軟件,現通用的有WebStone和SpecWeb99兩種。兩者都采用客戶/服務器模式,但是WebStone 目前還不能支持HTTP的POST操作以及HTTP/1.1,并且WebStone得到的結果表示的是在給定文件集下,每分鐘能獲取的頁面數目,而SpecWeb99表示服務器能夠支持多少高質量的連接。隨著網絡上各種諸如視頻點播等要求高質量業務的開展,SpecWeb99提供的結果相對用戶來說更為重要?;谝陨显?,我們選擇了SPEC(Standard Performance Evaluation Coporation)的SpecWeb99作為Web服務器性能評測工具。
§4.2 SpecWeb99簡介
SpecWeb99假設用戶數據傳送在一條帶寬為400Kb/s的線路之上,用戶收到數據后根據傳輸的數據量,可以得到在400Kb/s的線路上傳送這些數據應該花費的理論時間,如果傳輸的實際時間比理論時間要小,則客戶端睡眠兩個時間的差值。例如用戶接收600Kb數據歷時1秒,根據假設,在400Kb/s的線路上傳輸,理論上應該費時600/400=1.5秒,因此在接收該數據之后,客戶端應該睡眠1.5 - 1=0.5秒。在這種情況下,如果客戶和服務器之間的連接對各種請求的平均帶寬大于320Kb/s,則稱為“順暢連接”(Conforming Connection)。SpecWeb99就是評測服務器最多能支持多少“順暢連接”。
SpecWeb99的文件集采用4個類別,大小分別為0-1K、1K-10K、10K-100K和100K
§4.3 評測結果
對單一節點構成的Web服務器,在客戶端和服務器直接交互的情況下,SpecWeb99的評測結果為258,而在使用了PowerRouter中轉之后結果降低為256,這說明PowerRouter使得單節點Web服務器的性能降低了0.8%,可以看出PowerRouter對單節點系統性能影響很小。
對1、2、4、8個節點做成的Web服務器所得到的數據如下,其中的理論值為單節點直連情況下的結果乘以節點的數量。
服務器數量 |
1 |
2 |
4 |
8 |
SpecWeb99 |
256 |
505 |
920 |
1795 |
理論值 |
258 |
516 |
1032 |
2064 |
性能降低(%) |
0.8 |
2.2 |
10.9 |
13.1 |
圖4.1 |
由圖4.1可以看出,多節點Web服務器的性能基本隨服務器數量的增加而線性增長。說明Cluster系統加可擴展軟件確實能為大型Web服務提供比較優秀的擴展性能。
同時,從圖4.1中也可以看到,當采用8個節點作為Web服務器時,系統性能比理論值下降了13%,這主要是因為PowerRouter在連接數量擴大的時候,每個連接建立的平均時間加長,而且為了適應服務器節點的增加,客戶端的數量也必須隨之提高,在它們都向有限帶寬的PowerRouter(本系統中為100Mb網卡)建立連接時,沖突的可能也增加了,這些都導致了系統性能的降低。當服務器數量進一步擴大的時候, PowerRouter很可能就成為了系統的瓶頸。此時可以采用的解決方案是提高PowerRouter機器的配置,使用更高級的機器,更換更高速的網卡等等。
根據得到的數據,8個節點作成的服務器,可以支持2064個“順暢連接”,每個順暢連接至少為320Kb/s,假設用戶和服務器之間連接為100Kb/s(國內的通常情況),每個連接持續1分鐘,則該服務器每天可以支持的點擊數為24 * (60/1) * (320 / 100) * 2064 ≈ 1千萬。
§5.1 評測工具介紹
由于在國內國際上,還未見成型的Email服務器性能評測軟件,而SPEC公司的SpecMail2000還在開發之中(http://www.spec.org
圖5.1 |
為了得到穩定的,最能反映服務器性能的結果,對發送和接收信件的長度作了大量測試,在使用1K、2K、4K、8K、16K等不同長度的信件分別在1、2、3、4個節點作成的Mail服務器上得到的測試結果如圖5.1所示。從圖中可以看出,信件長度的變化對整個系統的性能影響不大。這是主要是因為MAIL操作中大量的時間花費在用戶與Mail服務器之間喋喋不休的交互上了,而信件處理占用的時間相對較小。通過各值的比較和反復實驗發現,當信件長度為2K的時候,系統測得的數據最為穩定。因此把收發信件的長度定為2K。
圖5.2 |
為了避免長時間等待,縮短評測時間,我們給POP3和SMTP操作分別設置了超時時間。由于SMTP操作的時間比POP3要長,因此把SMTP的超時時間定為POP3的兩倍。在使用1個節點做成的Mail服務器,讓客戶端創建96個線程模擬96個并發用戶同時對Mail服務器操作時,得到的在一小時之內的超時操作的次數如圖5.2所示,可以看到超時的時間從15s/30s增加到30s/60s時,超時次數下降250左右,而繼續增加超時時間卻下降不多,而且過多加長超時時間則必須使評測時間相應加長才能獲得穩定可信的結構?;谏厦鎯牲c的考慮,我們把POP3操作的超時時間定為30秒,SMTP為60秒
§5.2 評測結果
對單個的Mail服務器,在不采用MailProxy中轉時,其峰值速度為每小時能進行29091次“MAIL操作”,而通過MailProxy中介后為27634,可以看出MailProxy使系統性能下降了5%。
為了使MailProxy不成為系統的瓶頸,必須得到MailProxy所能支持的Mail服務器地數量。通過實驗,得到的數據如下:
節點個數 |
原文轉自:http://www.anti-gravitydesign.com |