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

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

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

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    http://kimva.blogbus.com/logs/10795676.html 

     在使用TUXEDO的過程中,會遇到一些并發請求量很大的情況,比如某些帳單處理服務或者是在營業下班前的日操作清單服務。這時,一些SERVICE會接收到大量客戶端,甚至長時間的請求,對service,甚至整個系統是嚴峻的考驗。遇到這種情況,單個的server往往難以應付,或者性能不好,我們就想到負載均衡或者使用TUXEDO的MSSQ(Multi Server, Single Queue)。下面筆者根據自己在TUXEDO應用開發和管理配置方面的實踐,結合實際系統壓力測試的結果對相關的問題進行一些探討。

    在沒有負載均衡的情況下,是由一個server(可能包含一個或多個service)來處理客戶端對其中service的請求,所有的請求首先放入這個server的隊列里面,然后server逐個取出處理。在UNIX系統上,TUXEDO較多的使用了隊列,并且也用到了共享內存和信號量,相關的UNIX系統參數會影響到系統的性能,但這個不在本文討論范圍之內,這里假設已經調到了合適的范圍,具體請查閱TUXEDO關于IPC的文檔。

    現以一個帳單處理的server為例,負載均衡前server的ubb配置為:
    billpay SRVGRP=GROUP1 SRVID=1
    在單個server不能滿足性能要求的情況下,就考慮采用TUXEDO的負載均衡方法。
    方法一是直接將相關server啟多份,將上面的配置改為:
    billpay SRVGRP=GROUP1 SRVID=1 MIN = 5 MAX = 10
    這樣tmboot的時候,就會有MIN = 5個billpay啟動,類似下面的情況:
    billpay 00001.00001 GROUP1 1 0 0 ( IDLE )
    billpay 00001.00002 GROUP1 2 0 0 ( IDLE )
    (依此類推,共5個)

    其中第二列是該server的隊列名,"."前面是GRPNO,后面是SRVID,每個server有自己的隊列。相關的另一個參數就是在ubb的*RESOURCES段的LDBAL,表示是否啟動Load Balancing,默認是"N"(不啟動),你可以通過設置成"Y"來啟動。這里需要注意的是,為"N"的時候并不表示多個server不能分擔負載。主要的差別是為"Y"時,TUXEDO在接收到請求時會按照它的負載均衡的算法來找到合適的server來處理,而設置成"N"時,總是由第一個可用的server來處理。通過這種方法可以讓多個server來處理大量并發的請求,就達到了改善性能的目的。

    方法二是采用MSSQ(Multi Server, Single Queue),顧名思義,就是有多份server,但是只有一個隊列(請求隊列)。具體的配置是:
    billpay SRVGRP=GROUP1 SRVID=1 MIN = 5 MAX = 10
    RQADDR=" billpay" REPLYQ=Y

    啟動后的情況如下:
    billpay billpay GROUP1 1 0 0 ( IDLE )
    billpay billpay GROUP1 2 0 0 ( IDLE )
    (依此類推,共5個)

    我們發現幾個billpay server都關聯相同的名為billpay的隊列,這就是所謂的Single Queue。

    與直接多server相比,多了兩個參數,RQADDR是這多個server共用的隊列名,是一種邏輯名,可以自己命名,不和別的沖突就可以,REPLYQ是標示是否設置返回隊列,在使用MSSQ的時候是強烈建議設置,因為這樣可以將請求和返回分開,避免多個server共用隊列時造成混亂。相關的其它參數這里沒有詳細列出。

    到底兩種方式和沒有負載均衡時有什么不同,后面將提供相關的測試結果。先分析一下兩種方法。方法一有多個隊列可以容納請求,但是這些大量的請求怎樣放入這些隊列必定有一定的策略,而且根據LDBAL的設置會不同,但是這個策略本身的運算也是一種消耗,因為每個請求都面臨著這個選擇。因為這種情況下每個隊列是和server對應的,所以隊列的選擇就意味著選擇了相應的那個server,這樣大量的請求就被分流。雖然有選擇的消耗,但是額外的好處也是顯而易見的,那就是有多個queue可用,有效避免了請求并發量很大時隊列的溢出,這種情況在實際的壓力測試中發生過。使用方法二時,放入隊列時不用做選擇,然后每個server的任務就是從隊列取出請求去處理,考慮到多個server并發取隊列,所以用MSSQ時其server的數目不宜太多,官方文檔建議2-12。而且在這種情況下,建議不要設置LDBAL=Y,因為MSSQ本身就是一種基于single queue的負載均衡的方法,這時再使用系統的策略已經沒有意義。這種方法也有一個問題,如果相對于請求數來說,處理得不夠快,就比第一種方法更容易造成隊列溢出。

    因為我們無法知道TUXEDO一些具體的算法和策略,那就用一些具體的測試來比較吧。筆者在一個和實際生產系統配置相同的UNIX+ORACLE+TUXEDO8.0系統上做了一下試驗,被測服務是一個帳單查詢服務,每次根據一批ID從數據庫查詢出具體的帳單,由于都是實際數據和實際使用的服務,有一定的說明力,但是也不排除一些情況造成的誤差。以下是測試的一些結果,每個server的實際運行份數都是10。

    一:客戶端數目為1,循環調用100次。

    1. 方法一,LDBAL = Y or N。結果發現所有的請求都由其中的一個server處理,其它全部空閑。在此基礎上再進行兩次循環調用,結果還是一樣。
    2. 用方法二,LDBAL = Y or N。其中兩次測試的情況是:
    <1>19,19,2,2,1,18,18,1,1,19
    <2>23,8,23,23,23,(其它空閑)
    以上數據說明了兩種方式的調度策略是不一樣的,在單客戶端循環的情況下方法二更合適。

    二:客戶端數目50,每個循環80次,統計總的執行時間。
    1. 用single server。兩次測試的處理時間分別是219s和196s。
    2. LDBAL = Y 方法一:三次測試時間為:63s,79s,69s
    3. LDBAL = N 方法一:三次測試時間為:74s,79s,85s
    4. LDBAL = Y 方法二:三次測試時間為:74s,73s,77s
    5. LDBAL = N 方法二:三次測試時間為:78s,76s,75s

    通過以上數據可以看出不管用那種方法,使用負載均衡相比單個server都可以在大量請求并發時得到更好的性能。但是同時也發現后四種情況的總時間差別不大,考慮一些實際的誤差,很難斷定哪種更好。

    通過前面的分析,并查閱相關的文檔,建議采用的是兩種方式:多個server,不用MSSQ,設置LDBAL = Y;用MSSQ,設置LDBAL = N。當然,在使用TUXEDO的應用系統中,不能絕對的說哪一種方式更好,只能是根據具體的情況來分析,并通過實際的壓力測試來進行選擇,而且這個和具體server的特點也是有關的。

    以上是一些個人分析和測試的結果,算是寫出來和大家探討,也希望大家提出自己的看法并討論。

    posted on 2009-05-26 21:14 jinfeng_wang 閱讀(1133) 評論(0)  編輯  收藏 所屬分類: ZZtuxedo
    主站蜘蛛池模板: 久久久综合亚洲色一区二区三区| 国产精品视_精品国产免费| 亚洲精品NV久久久久久久久久| 亚洲精品456人成在线| 免费做爰猛烈吃奶摸视频在线观看| 亚洲黄色网址大全| 一级毛片免费观看不卡的| 亚洲成AV人片在| 国内永久免费crm系统z在线| 亚洲成A人片在线观看中文| 日韩在线视精品在亚洲| 免费播放春色aⅴ视频| 午夜在线免费视频 | 国产成人亚洲精品91专区高清| 无人视频在线观看免费播放影院| 国产成人无码a区在线观看视频免费| 亚洲欧洲精品成人久久曰| 午夜神器成在线人成在线人免费 | 久久狠狠高潮亚洲精品| 一个人免费观看在线视频www| 亚洲午夜精品在线| 免费看少妇作爱视频| 无码免费又爽又高潮喷水的视频| 亚洲熟伦熟女新五十路熟妇| 丁香婷婷亚洲六月综合色| 麻豆国产入口在线观看免费 | 一区二区3区免费视频| 久久精品国产亚洲一区二区三区| 毛片在线全部免费观看| 91亚洲精品自在在线观看| 精品国产一区二区三区免费看| 亚洲AV网一区二区三区| 久久被窝电影亚洲爽爽爽| 曰批视频免费30分钟成人| 免费人妻精品一区二区三区| 亚洲av无码国产精品夜色午夜| 九九久久国产精品免费热6| 亚洲电影免费在线观看| 成人毛片免费观看视频大全| 日韩精品无码免费专区网站| 亚洲国产成人精品无码区在线秒播|