<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java Votary

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      48 隨筆 :: 1 文章 :: 80 評論 :: 0 Trackbacks
    J2EE中軟件基礎結構的瓶頸

    作者:Deepak Goel

    譯者:xMatrix


    版權聲明:任何獲得Matrix授權的網站,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
    作者:Deepak Goel;xMatrix
    原文地址:http://www.onjava.com/pub/a/onjava/2005/01/19/j2ee-bottlenecks.html
    中文地址:http://www.matrix.org.cn/resource/article/43/43964_J2EE_bottlenecks.html
    關鍵詞: bottlenecks J2EE


    可擴展性是系統中的一個非常重要的非功能性需求。但系統中可能有多個瓶頸會阻礙系統的擴展性。在這篇文章中,我們嘗試分析軟件基礎結構成為瓶頸的案例,而不考慮硬件資源上的限制(如CPU、磁盤空間、網絡速度等)。下面我們將探討一下這個問題。

    下面是一些整篇文章中用到的一些術語:
    ·吞吐量:系統支持的每秒能夠處理的事務個數。
    ·服務請求:每個事務中特定硬件的使用率,等于硬件使用率除以吞吐量。
    ·硬件資源:指處理器、內存、磁盤和網絡。
    ·軟件資源:指WEB線程、執行線程、BEAN池及數據庫連接池等。
    ·預計時間:用戶預計兩次并發提交請求之間的時間。
    ·短時間法則:一個驗證測試及確信測試環境不是瓶頸的法則。
    ·響應時間:用戶等待他提交的請求返回響應的時間。

    理論基礎

    任何J2EE應用通常都有下面幾個層次,如圖1:
    1、硬件基礎結構資源(處理器、內存、磁盤和網絡)
    2、軟件基礎結構資源(JVM,WEB服務器、應用服務器、數據庫服務器)
    3、軟件應用(J2EE應用)

    imageFigure 1. Snapshot of a J2EE system

    這兒有兩個可能性導致瓶頸:硬件成為主要瓶頸或者軟件成為主要瓶頸。在第一種情況,硬件資源不足夠而軟件資源很充分,如圖2。隨著負載的增加,硬件資源成為瓶頸,而軟件可以繼續擴展。減輕這個瓶頸的方案通常是擴大或者增加硬件。

    image
    Figure 2. The hardware pipe becomes a bottleneck


    在第二種情況,硬件資源是足夠的而軟件資源相對有限。隨著負載的增加,軟件資源成為瓶頸,如圖3。減輕這種瓶頸的方案通常是使用軟件群集或優化軟件。

    image
    Figure 3. Software pipe becomes a bottleneck

    應用服務器如何工作?

    來 考慮一下應用服務器的內部機制。應用服務器的基本功能包括事務管理、數據持久、對象池、SOCKET處理和請求處理。這些功能的流程如圖4。有各種組件來 處理這些功能。這些組件需要同步應用服務器中的線程來維護數據的一致性并操作數據。雖然這種同步對應用服務器的功能正確性是必須而且有用的,但是也成為高 負載的限制,即使有足夠的硬件資源。

    image
    Figure 4. Internals of an application server

    實驗

    為 了理解瓶頸的狀況,我們在基于Windows/Intel平臺用流行的J2EE應用服務器來測試一下JAVA PETSTORE應用。一些測試用例如PetStore應用的瀏覽和購買周期來測試擴展性。我們確信整個測試環境(包括操作系統、JVM、應用服務器和應 用自身)已經盡可能優化了,而且J2EE應用沒有任何瓶頸或同步問題。我們使用了多用戶負載測試并觀察了響應時間、吞吐量、資源利用率等指標。

    環境如下:
    1、        J2EE PetStore應用
    2、        J2EE應用服務器
    3、        Sun JVM 1.3
    4、        Windows 2000高級服務器
    5、        Intel Dell PowerEdge 8450 (8Intel至強800MHz處理器, 4GB RAM)
    6、        100Mbps Cisco dedicated network
    7、        負載測試工具WebLoad

    image




    在這個測試中我們看到即使有足夠的硬件資源,應用服務器的實例個數限制了擴展的能力。在這里軟件資源(如執行線程、BEAN池大小、數據庫池和其他應用服務器參數)優化后即使這些資源不足也不會影響系統的擴展。下面我們來研究一下減輕這種問題的方案。
    注:Sun J2EE PetStore可以被更多地優化來改善性能和可擴展性。


    解決方案

    同一機器上的群集

    當吞吐量滿載了應用服務器的一個實例時,需要增加一個實例來減輕這種問題。這個方案如圖5。

    image
    Figure 5. Instance clusters on the same hardware box

    當前機器的CPU使用率只有40%因而有足夠空間來增加一個實例。我們可以發現在增加了實例后,吞吐量也增加了50%,如表2

    image

    在不同機器的群集
    當吞吐量滿載了應用服務器的一個實例時,機器的CPU使用率只有40%。因為8CPU的機器未完全利用,所以我們測試一下更低配置的機器。現在我們使用兩個4CPU的機器,如圖6。

    image
    Figure 6. Instance clusters on different hardware boxes


    我們發現4CPU機器的CPU使用率已達到80%,再增加實例也沒有什么用處了。因此我們又增加一臺4CPU的機器來運行應用的實例。在增加機器后,吞吐量幾乎翻了一倍。在這里我們確信數據庫服務器不會成為瓶頸。

    注:在上面的兩臺機器的測試中,負載平衡是通過一種不增加應用服務器實例功能負載的方式來處理的。但是在實際的生產環境中很難做到。

    因為我們觀察到8CPU的機器被沒有被完全利用,所以我們使用4CPU的機器重新測試了一遍。測試的結果可以在下表中看到,分別對應配置1和2。4CPU的配置幾乎被完全利用了,這意味著使用4CPU的配置比8CPU的配置更實際,因為前者花費更少。

    image

    小結

    這 些實驗指出了軟件基礎結構如應用服務器實例可能成為瓶頸,并給出了一些解決方案來減輕這種問題(包括在相同或不同機器上的群集)。這個問題需要在J2EE 應用的負載計劃或大小確定時優先考慮,因為這直接影響到應用的擴展性。這種想法很重要,下面我通過一個情景對話來表達。

    項目經理:你的意思是應用服務器(代表軟件基礎結構)會成為系統的瓶頸。
    性能架構師:是的
    項目經理:那為什么這種情況不是經常發生。
    性能架構師:是的,因為有時候瓶頸首先發生在硬件或應用本身。這時候應用服務器還沒有使用到所有的擴展性。
    項目經理:這是事實。那么解決這種瓶頸的方法就是使用群集。如果有足夠的硬件資源就在同一臺機器上跑群集否則在多臺機器中配置。
    性能架構師:是的。這也是在這篇文章中所得到的。

    資源
    ·onjava.com:onjava.com
    ·Matrix-Java開發者社區:http://www.matrix.org.cn/


    Deepak Goel是Infosys技術有限公司軟件工程實驗室的技術架構師。

    posted on 2005-11-25 10:35 Dion 閱讀(620) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 妞干网在线免费观看| 免费女人高潮流视频在线观看 | 少妇高潮太爽了在线观看免费| 亚洲AV永久无码区成人网站| 黄色网页在线免费观看| 日韩亚洲变态另类中文| 国产免费福利体检区久久| 中文字幕人成人乱码亚洲电影| 波霸在线精品视频免费观看| 亚洲男人的天堂在线va拉文| 二个人看的www免费视频| 亚洲av综合av一区| 2021在线永久免费视频| 亚洲国产成a人v在线| 日本高清免费不卡在线| 国产精品内射视频免费| 亚洲av无码一区二区乱子伦as| 1000部夫妻午夜免费| 亚洲精品无码你懂的| 久久久久亚洲av成人无码电影| 国内精品久久久久影院免费| 亚洲精品视频观看| 在线视频免费观看www动漫| 猫咪免费人成网站在线观看入口| 亚洲午夜久久久久久噜噜噜| 嫩草在线视频www免费观看| xxx毛茸茸的亚洲| 免费在线观看污网站| 另类免费视频一区二区在线观看| 亚洲欧洲国产成人精品| 永久免费视频v片www| 青青操视频在线免费观看| 亚洲欧洲精品视频在线观看| 日韩一级免费视频| 久久久久国产免费| 亚洲人av高清无码| 亚洲精品国产精品乱码在线观看| 国产精品成人观看视频免费 | 国产97视频人人做人人爱免费| 亚洲AV日韩精品久久久久| 永久免费bbbbbb视频|