一个Web服务的性能瓶颈分析及对策
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                一个Web服务的性能瓶颈分析及对策
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            1、 引言
QoS(Quality of Service,服務質量)控制技術作為下一代網絡的核心技術之一,越來越成為計算機網絡中研究與開發的熱點問題。QoS控制的基本目標是為Internet應用提供性能保證和區分服務。隨著Internet上Web應用的爆炸性增長和電子商務的飛速發展,如何為用戶提供滿意的服務性能保證成了一個新的研究課題,由于傳統的Web服務器無法為Web應用提供服務區分和性能保證,因此,隨著QoS技術研究和應用的深入,Web QoS作為QoS技術的一個新的重要研究領域應運而生。這種面向Web客戶和Http請求的技術,是屬于應用層的QoS,是企業對企業交易的一個重要條件,也是Web服務器中的一個必要元素,它度量的是用戶在與Web站點進行交互時所感受到的服務性能,如:交易時間,交易的可靠性等等。在Web服務應用程序的實現中需要滿足各種QoS屬性,比如:可用性、可訪問性、完整性、性能、可靠性、常規性和安全性等[1]。
目前,Web QoS控制研究已經越來越受到國內外學界和業界的重視并取得了一定的成果。概括起來,實現Web QoS控制技術可以分為這樣幾大類:Web請求的分類機制、Web服務器軟件的QoS控制機制、操作系統的Web QoS控制機制以及Web服務器集群的QoS控制機制。本文主要研究一個Web服務的性能瓶頸,并對其進行分析,提出相應的策略。
2、 Http對Web QoS的影響及對策
由于底層消息傳遞和傳輸協議的局限性,Web服務會遇到性能瓶頸。然而,對公眾普遍接受的協議(例如 HTTP 和 SOAP)的依賴卻使它們成了必須承擔的永久的負擔。因此,本文對其加以分析并得出相應的解決措施。
2.1、 Http成為制約Web服務性能的一個瓶頸
Http是一種盡力而為的傳輸服務,是一個無狀態的數據轉發機制,它不保證數據包會被傳輸到目的地,而且不保證數據包到達的順序。因而產生一個可怕的問題:在沒有可用帶寬的情況下,數據包就會被簡單地丟棄。這樣,許多服務級別高的付費用戶就無得到服務級別的保證。比如:企業和企業之間的交易就比一般的瀏覽需要更可靠的服務保證,一個股票在線交易就比普通的下載更加需要實時保障。所以,隨著運行在網絡上的用戶和數據量的增加和電子商務的飛速發展,在有限帶寬和網絡資源的條件下,Http顯然是一個制約Web服務性能的一個瓶頸,Http協議無法為Web服務器提供區分服務和性能保證。
雖然可以使用新設計的協議如“可靠 HTTP”(Reliable HTTP,HTTPR)、“塊可擴展交換協議”(Blocks Extensible Exchange Protocol,BEEP)和“直接因特網消息封裝”(Direct Internet Message Encapsulation,DIME) [2],但這些用于 Web 服務傳輸的新協議(如 HTTPR 和 BEEP)的廣泛采用還需要一些時間。因此,使用 Web 服務的應用程序設計人員在設計系統時應該理解 Web 服務的性能問題,比如延遲和可用性。下面給出了一些改善 Web 服務性能的策略來解決這個問題。
2.2四解決策略
2 .1.1使用異步消息隊列
習慣上,許多應用程序使用同步消息傳遞,當在自己的計算機上運行應用程序時,同步的消息傳遞是沒什么問題的;組件通信的延遲以幾毫秒計。但是,對于 Web 服務來說,它們是通過因特網進行通信,這意味著延遲要以幾十、幾百甚至幾千微秒計。
依賴遠程 Web 服務的應用程序可以使用消息排隊來改善可靠性,但要以響應時間為代價。 一個企業內的應用程序和 Web 服務可以使用消息排隊如“Java 消息傳遞服務”(Java Messaging Service,JMS)或 IBM MQSeries 進行 Web 服務調用[2]。企業消息傳遞為整個企業內的關鍵數據異步交換提供可靠、靈活的服務。 消息隊列有兩個主要優勢:
(1)它是異步的:一個消息傳遞服務提供者可以在消息到達時向請求者傳遞消息,請求者不必為接收消息而請求消息。
(2)它是可靠的:消息傳遞服務可以確保一條消息被傳遞一次,且僅傳遞一次。
將來,因特網上的發布和訂閱消息傳遞系統如 alphaWorks 上的 Utility Services 包可以用于 Web 服務調用[3]。
2.1.2對到來的Http請求進行分類
實現Web QoS的一個重要環節是對到來的Http請求進行分類,在傳統的Web服務中 HTTP的請求是直接由工作進程偵聽的,它對于所有的請求均采用先到先服務的處理方式,顯然這種方法忽略了客戶的優先級別。現在通常使用一種用連接管理模塊,可以對不同的請求進行分類,并設定其優先級,這樣就可以實現對不同用戶的差別服務。請求分類是實現Web差別服務的核心模塊,它對不同的請求設定不同的優先級并將其放入相應的隊列。分類的方法有很多,可以根據實際的需要進行選擇,目前常用的方法可以分為以下幾類:
(1) 根據不同的用戶分類
要對客戶進行分類,客戶可以按服務器的要求輸入一定的信息,服務器以此來判斷客戶的身份。一種方法是用客戶的IP地址來區分客戶,這種方法是在QoS Web服務器模型中,服務器可以對客戶的服務請求設定不同的服務等級,按照預先定義的資源分配策略對客戶的服務請求作出響應[4]。這種方法具有占用帶寬小,容易實現,客戶等等時延小的優點。但缺點是客戶端的IP地址經常會被代理服務器或者防火墻所屏蔽,因此它的應用也受到限制。
另外一種方法是基于Http Cookie的分類,它是將Web Cookie嵌入Http請求內,以表明客戶所屬的類別。HTTP請求中的Cookie是可以由服務器發送給瀏覽器的唯一標識符,它可以內嵌在HTTP請求中,用來表示不同的服務級別。服務商可以給某個特定的服務提供一個永久的Cookie以供給用戶使用。這樣,就可以為付費用戶和免費用戶設置不同的優先級,利用cookie 來識別用戶信息,記錄下用戶在一段時間內的訪問傾向,例如經常瀏覽哪一類的網頁,或者常常購買哪一類的商品;并將有相同興趣的用戶歸類分組。當用戶訪問網站時,服務器可以根據他們的興趣傾向推薦他們可能接受的網頁,而且可以預測用戶將來可能的行為,以此來提高服務質量。
和基于Http Cookie的分類相似,基于瀏覽器plug-in的分類是將特定的標識符嵌入Http請求內以表明客戶所屬的類別。瀏覽器中的plug-in插件是內嵌在客戶端的又一種標識方法,購買了某種優先級服務的用戶可以從服務器端下載特定的插件,把它放入HTTP的請求中。這些方法可以對客戶進行分組,從而對高級別的客戶提供更好的Web QoS保證。
以上這些方法雖然很準確,但是比較繁瑣,增加了客戶的等待時延,同時也為判斷客戶的身份占用了額外的帶寬。
(2) 根據請求的目標分類
根據請求的目標所特有的一些屬性和特點,我們可以對客戶進行分類。我們都知道,由于URL請求類型或文件名路徑可以區分不同請求,以及若多個站點訪問同一Web服務器節點的時候,服務器可以識別其IP。所以可以用基于URL請求類型或請求的文件路徑的分類和基于目標IP或端口的分類兩種方法來實現Web QoS控制。這種分類方法同樣也可以為高級別用戶提供優先服務。較好地消除由于在網絡少量較大時,由Http協議而產生的瓶頸[5]。
不同的URL請求類型或者不同的請求文件路徑表明了請求的不同的重要程度,在這種情況下請求的重要性與發送者是無關的。它側重于對于不同的請求動作和請求目的進行分類。按照其重要程度,一般可以將請求分為緊急的 (Mission-critical) 、對時延敏感(delay-sensitive)的、和盡力而為(best-effort)傳送3種。 例如,在電子商務應用中,購買商品的用戶顯然應當比僅僅瀏覽的用戶獲取更高的優先級目的地的IP地址,如果在同一個網絡節點中架設多個Web站點,那么就要用目的地址來區分請求的重要性。
(3) 利用其他網絡參數
Web服務器也可以將傳輸和路由中對數據包分級的參數集成到自己的連接管理模塊中。例如,在因特網的差分服務體系中,IP數據報頭的TOS域常被用作包的優先級標識,Web服務器可直接從IP頭取出TOS域中的數據作為請求的優先級[5]。這樣,也可以達到高級別用戶服務的保證。
2.1.3、通過備份使服務平滑降級
在每個服務器上存儲多份不同質量的Web 內容。當服務器超載時,可以使服務器有選擇地為客戶提供適宜質量的Web 內容,即以體面的方式為低優先級客戶提供平滑的服務降級[6],而保證高優先級的客戶不會受到降級服務。這樣就可以在服務器過載的情況下自適應地提供連續的內容降級服務而不是簡單地拒絕請求,從而能夠更好地為用戶提供Web QoS。
2.1.4、其它的保證Web Qos的方法
除了上文中所述的方法之外,我們還可以提供主動Web服務 QoS 的方法,如服務請求的高速緩存和負載平衡,服務提供者可以主動向服務請求者提供很高的 QoS。在Web服務器級別上和 Web 應用程序服務器級別上都可以完成高速緩存和負載平衡。負載平衡區分各種類型通信的優先次序,并確保適當地按照每個請求所表現出的價值對待它。
3、 結論和展望
隨著Web 服務的廣泛擴大,服務質量QoS 將變成一個判定服務提供者是否成功的重要因素。QoS 決定服務的可用性和實用性, 本文所列出的消除Http對于Web服務性能瓶頸的方法針對性強,易于實現。隨著Web QoS研究技術的發展,基于中間件技術和Web服務器集群的QoS控制機制必將給Web提供更可靠的服務保障,有待我們進行更深入的研究。
                        
                        
                        QoS(Quality of Service,服務質量)控制技術作為下一代網絡的核心技術之一,越來越成為計算機網絡中研究與開發的熱點問題。QoS控制的基本目標是為Internet應用提供性能保證和區分服務。隨著Internet上Web應用的爆炸性增長和電子商務的飛速發展,如何為用戶提供滿意的服務性能保證成了一個新的研究課題,由于傳統的Web服務器無法為Web應用提供服務區分和性能保證,因此,隨著QoS技術研究和應用的深入,Web QoS作為QoS技術的一個新的重要研究領域應運而生。這種面向Web客戶和Http請求的技術,是屬于應用層的QoS,是企業對企業交易的一個重要條件,也是Web服務器中的一個必要元素,它度量的是用戶在與Web站點進行交互時所感受到的服務性能,如:交易時間,交易的可靠性等等。在Web服務應用程序的實現中需要滿足各種QoS屬性,比如:可用性、可訪問性、完整性、性能、可靠性、常規性和安全性等[1]。
目前,Web QoS控制研究已經越來越受到國內外學界和業界的重視并取得了一定的成果。概括起來,實現Web QoS控制技術可以分為這樣幾大類:Web請求的分類機制、Web服務器軟件的QoS控制機制、操作系統的Web QoS控制機制以及Web服務器集群的QoS控制機制。本文主要研究一個Web服務的性能瓶頸,并對其進行分析,提出相應的策略。
2、 Http對Web QoS的影響及對策
由于底層消息傳遞和傳輸協議的局限性,Web服務會遇到性能瓶頸。然而,對公眾普遍接受的協議(例如 HTTP 和 SOAP)的依賴卻使它們成了必須承擔的永久的負擔。因此,本文對其加以分析并得出相應的解決措施。
2.1、 Http成為制約Web服務性能的一個瓶頸
Http是一種盡力而為的傳輸服務,是一個無狀態的數據轉發機制,它不保證數據包會被傳輸到目的地,而且不保證數據包到達的順序。因而產生一個可怕的問題:在沒有可用帶寬的情況下,數據包就會被簡單地丟棄。這樣,許多服務級別高的付費用戶就無得到服務級別的保證。比如:企業和企業之間的交易就比一般的瀏覽需要更可靠的服務保證,一個股票在線交易就比普通的下載更加需要實時保障。所以,隨著運行在網絡上的用戶和數據量的增加和電子商務的飛速發展,在有限帶寬和網絡資源的條件下,Http顯然是一個制約Web服務性能的一個瓶頸,Http協議無法為Web服務器提供區分服務和性能保證。
雖然可以使用新設計的協議如“可靠 HTTP”(Reliable HTTP,HTTPR)、“塊可擴展交換協議”(Blocks Extensible Exchange Protocol,BEEP)和“直接因特網消息封裝”(Direct Internet Message Encapsulation,DIME) [2],但這些用于 Web 服務傳輸的新協議(如 HTTPR 和 BEEP)的廣泛采用還需要一些時間。因此,使用 Web 服務的應用程序設計人員在設計系統時應該理解 Web 服務的性能問題,比如延遲和可用性。下面給出了一些改善 Web 服務性能的策略來解決這個問題。
2.2四解決策略
2 .1.1使用異步消息隊列
習慣上,許多應用程序使用同步消息傳遞,當在自己的計算機上運行應用程序時,同步的消息傳遞是沒什么問題的;組件通信的延遲以幾毫秒計。但是,對于 Web 服務來說,它們是通過因特網進行通信,這意味著延遲要以幾十、幾百甚至幾千微秒計。
依賴遠程 Web 服務的應用程序可以使用消息排隊來改善可靠性,但要以響應時間為代價。 一個企業內的應用程序和 Web 服務可以使用消息排隊如“Java 消息傳遞服務”(Java Messaging Service,JMS)或 IBM MQSeries 進行 Web 服務調用[2]。企業消息傳遞為整個企業內的關鍵數據異步交換提供可靠、靈活的服務。 消息隊列有兩個主要優勢:
(1)它是異步的:一個消息傳遞服務提供者可以在消息到達時向請求者傳遞消息,請求者不必為接收消息而請求消息。
(2)它是可靠的:消息傳遞服務可以確保一條消息被傳遞一次,且僅傳遞一次。
將來,因特網上的發布和訂閱消息傳遞系統如 alphaWorks 上的 Utility Services 包可以用于 Web 服務調用[3]。
2.1.2對到來的Http請求進行分類
實現Web QoS的一個重要環節是對到來的Http請求進行分類,在傳統的Web服務中 HTTP的請求是直接由工作進程偵聽的,它對于所有的請求均采用先到先服務的處理方式,顯然這種方法忽略了客戶的優先級別。現在通常使用一種用連接管理模塊,可以對不同的請求進行分類,并設定其優先級,這樣就可以實現對不同用戶的差別服務。請求分類是實現Web差別服務的核心模塊,它對不同的請求設定不同的優先級并將其放入相應的隊列。分類的方法有很多,可以根據實際的需要進行選擇,目前常用的方法可以分為以下幾類:
(1) 根據不同的用戶分類
要對客戶進行分類,客戶可以按服務器的要求輸入一定的信息,服務器以此來判斷客戶的身份。一種方法是用客戶的IP地址來區分客戶,這種方法是在QoS Web服務器模型中,服務器可以對客戶的服務請求設定不同的服務等級,按照預先定義的資源分配策略對客戶的服務請求作出響應[4]。這種方法具有占用帶寬小,容易實現,客戶等等時延小的優點。但缺點是客戶端的IP地址經常會被代理服務器或者防火墻所屏蔽,因此它的應用也受到限制。
另外一種方法是基于Http Cookie的分類,它是將Web Cookie嵌入Http請求內,以表明客戶所屬的類別。HTTP請求中的Cookie是可以由服務器發送給瀏覽器的唯一標識符,它可以內嵌在HTTP請求中,用來表示不同的服務級別。服務商可以給某個特定的服務提供一個永久的Cookie以供給用戶使用。這樣,就可以為付費用戶和免費用戶設置不同的優先級,利用cookie 來識別用戶信息,記錄下用戶在一段時間內的訪問傾向,例如經常瀏覽哪一類的網頁,或者常常購買哪一類的商品;并將有相同興趣的用戶歸類分組。當用戶訪問網站時,服務器可以根據他們的興趣傾向推薦他們可能接受的網頁,而且可以預測用戶將來可能的行為,以此來提高服務質量。
和基于Http Cookie的分類相似,基于瀏覽器plug-in的分類是將特定的標識符嵌入Http請求內以表明客戶所屬的類別。瀏覽器中的plug-in插件是內嵌在客戶端的又一種標識方法,購買了某種優先級服務的用戶可以從服務器端下載特定的插件,把它放入HTTP的請求中。這些方法可以對客戶進行分組,從而對高級別的客戶提供更好的Web QoS保證。
以上這些方法雖然很準確,但是比較繁瑣,增加了客戶的等待時延,同時也為判斷客戶的身份占用了額外的帶寬。
(2) 根據請求的目標分類
根據請求的目標所特有的一些屬性和特點,我們可以對客戶進行分類。我們都知道,由于URL請求類型或文件名路徑可以區分不同請求,以及若多個站點訪問同一Web服務器節點的時候,服務器可以識別其IP。所以可以用基于URL請求類型或請求的文件路徑的分類和基于目標IP或端口的分類兩種方法來實現Web QoS控制。這種分類方法同樣也可以為高級別用戶提供優先服務。較好地消除由于在網絡少量較大時,由Http協議而產生的瓶頸[5]。
不同的URL請求類型或者不同的請求文件路徑表明了請求的不同的重要程度,在這種情況下請求的重要性與發送者是無關的。它側重于對于不同的請求動作和請求目的進行分類。按照其重要程度,一般可以將請求分為緊急的 (Mission-critical) 、對時延敏感(delay-sensitive)的、和盡力而為(best-effort)傳送3種。 例如,在電子商務應用中,購買商品的用戶顯然應當比僅僅瀏覽的用戶獲取更高的優先級目的地的IP地址,如果在同一個網絡節點中架設多個Web站點,那么就要用目的地址來區分請求的重要性。
(3) 利用其他網絡參數
Web服務器也可以將傳輸和路由中對數據包分級的參數集成到自己的連接管理模塊中。例如,在因特網的差分服務體系中,IP數據報頭的TOS域常被用作包的優先級標識,Web服務器可直接從IP頭取出TOS域中的數據作為請求的優先級[5]。這樣,也可以達到高級別用戶服務的保證。
2.1.3、通過備份使服務平滑降級
在每個服務器上存儲多份不同質量的Web 內容。當服務器超載時,可以使服務器有選擇地為客戶提供適宜質量的Web 內容,即以體面的方式為低優先級客戶提供平滑的服務降級[6],而保證高優先級的客戶不會受到降級服務。這樣就可以在服務器過載的情況下自適應地提供連續的內容降級服務而不是簡單地拒絕請求,從而能夠更好地為用戶提供Web QoS。
2.1.4、其它的保證Web Qos的方法
除了上文中所述的方法之外,我們還可以提供主動Web服務 QoS 的方法,如服務請求的高速緩存和負載平衡,服務提供者可以主動向服務請求者提供很高的 QoS。在Web服務器級別上和 Web 應用程序服務器級別上都可以完成高速緩存和負載平衡。負載平衡區分各種類型通信的優先次序,并確保適當地按照每個請求所表現出的價值對待它。
3、 結論和展望
隨著Web 服務的廣泛擴大,服務質量QoS 將變成一個判定服務提供者是否成功的重要因素。QoS 決定服務的可用性和實用性, 本文所列出的消除Http對于Web服務性能瓶頸的方法針對性強,易于實現。隨著Web QoS研究技術的發展,基于中間件技術和Web服務器集群的QoS控制機制必將給Web提供更可靠的服務保障,有待我們進行更深入的研究。
總結
以上是生活随笔為你收集整理的一个Web服务的性能瓶颈分析及对策的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: FFMPEG学习----打印视频信息
 - 下一篇: 软件体系结构1~5章知识点整理