放翁(文初)的一畝三分地

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            210 隨筆 :: 1 文章 :: 320 評(píng)論 :: 0 Trackbacks

                  最近被內(nèi)部問(wèn)了太多關(guān)于jetty測(cè)試的問(wèn)題了,所以這里先寫(xiě)一點(diǎn)開(kāi)頭,后續(xù)再全面的做一下測(cè)試,想說(shuō)的就是測(cè)試需要你去關(guān)注場(chǎng)景,需要去區(qū)分什么是表象和本質(zhì)。

                  

                 你的系統(tǒng)是什么系統(tǒng):(一步一步的做判斷)

                 流入系統(tǒng) or 流出系統(tǒng)?

           

                   流入系統(tǒng)(系統(tǒng)完成請(qǐng)求無(wú)外部系統(tǒng)依賴(lài),緩存可以考慮成為非外部依賴(lài))

                            瓶頸在CPU,帶寬,內(nèi)存(容器連接數(shù),線(xiàn)程數(shù))?

           

                   流出系統(tǒng)(系統(tǒng)完成請(qǐng)求有外部系統(tǒng)依賴(lài))

                             瓶頸在CPU,帶寬,內(nèi)存(容器連接數(shù),線(xiàn)程數(shù)) or 第三方系統(tǒng)?

                            第三方系統(tǒng):

          1.  強(qiáng)依賴(lài),無(wú)法降級(jí)和后備切換

          2.  弱依賴(lài),可降級(jí)跳過(guò)或后備可切換。(多個(gè)服務(wù)提供者提供同樣的服務(wù))

           

              模型建立:

          1.  同樣資源情況下處理能力的比較。(不要僅僅去比較線(xiàn)程數(shù),因?yàn)槟愕馁Y源是cpu,memory等等,線(xiàn)程是表象)因此不要簡(jiǎn)單的認(rèn)為容器間的平等就是設(shè)置線(xiàn)程數(shù)的平等,不同容器采用的處理模式是不同的,就好比不要用NIO和BIO去比較他們的線(xiàn)程數(shù)一樣。這類(lèi)測(cè)試需要關(guān)注同等資源這個(gè)標(biāo)準(zhǔn)如何建立(load,memory等),同樣的資源下再比較兩者的TPS。適用于流入系統(tǒng)來(lái)做壓力測(cè)試。(本身的系統(tǒng)消耗決定了處理能力)

          2. 模擬不同RT范圍的場(chǎng)景,不同容器對(duì)于資源的消耗程度。(比如模擬后端系統(tǒng)響應(yīng)時(shí)間的范圍,來(lái)觀察不同容器并發(fā)處理能力及穩(wěn)定性)。適用于流出系統(tǒng)的強(qiáng)依賴(lài)模式。

          3.  通過(guò)采用類(lèi)似于Jetty Continuation或者servlet3的模式來(lái)將業(yè)務(wù)和系統(tǒng)線(xiàn)程池切分開(kāi)來(lái),加上帶有業(yè)務(wù)性隔離的服務(wù)線(xiàn)程池實(shí)現(xiàn)服務(wù)切換和降級(jí),比較帶來(lái)的損耗是否可以接受,判斷是否換容器。適用于流出系統(tǒng)的弱依賴(lài)模式。

           

              總體來(lái)說(shuō):

          1.  建立統(tǒng)一的資源消耗模型(用實(shí)際的消耗來(lái)判斷服務(wù)器的能力瓶頸)

          2.  根據(jù)依賴(lài)系統(tǒng)的響應(yīng)時(shí)間來(lái)實(shí)際模擬場(chǎng)景判斷帶來(lái)的影響。(連接消耗在某些場(chǎng)景下已經(jīng)是九牛一毛的case了,優(yōu)化本身就沒(méi)有太大實(shí)際意義)

          3.  對(duì)于系統(tǒng)本身是否有除了性能以外的更多需求,比如系統(tǒng)穩(wěn)定性要求的服務(wù)降級(jí)和切換。

          4.  容器本身的模式可改進(jìn)點(diǎn)及可維護(hù)性(模塊化等)。

          5.  最后對(duì)于慢請(qǐng)求的支持(內(nèi)部網(wǎng)絡(luò)請(qǐng)求往往無(wú)法模擬慢請(qǐng)求對(duì)java容器的“傷害”,這也就是為什么要加一層http代理的目的)

           

              近期做一下測(cè)試比較,給出一些結(jié)論性的東西,不過(guò)希望大家做測(cè)試一定要考慮場(chǎng)景和真實(shí)的需求,切勿僅僅為了容器測(cè)試而作容器測(cè)試。(同時(shí)把封裝的jetty層異步調(diào)用+業(yè)務(wù)性隔離的線(xiàn)程池代碼包共享出來(lái))

          posted on 2011-03-31 00:40 岑文初 閱讀(3382) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阜新| 抚松县| 剑川县| 岳池县| 新营市| 大埔县| 汝城县| 那曲县| 吉林省| 祁门县| 福鼎市| 开阳县| 库伦旗| 周宁县| 邹城市| 庄浪县| 吉木萨尔县| 咸宁市| 湛江市| 上思县| 青海省| 达日县| 施秉县| 凭祥市| 平和县| 万荣县| 镇坪县| 远安县| 泰安市| 斗六市| 汝南县| 太湖县| 乌恰县| 宁南县| 武邑县| 石台县| 柳州市| 黑水县| 开鲁县| 安吉县| 平江县|