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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            210 隨筆 :: 1 文章 :: 320 評論 :: 0 Trackbacks

                  最近被內部問了太多關于jetty測試的問題了,所以這里先寫一點開頭,后續再全面的做一下測試,想說的就是測試需要你去關注場景,需要去區分什么是表象和本質。

                  

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

                 流入系統 or 流出系統?

           

                   流入系統(系統完成請求無外部系統依賴,緩存可以考慮成為非外部依賴)

                            瓶頸在CPU,帶寬,內存(容器連接數,線程數)?

           

                   流出系統(系統完成請求有外部系統依賴)

                             瓶頸在CPU,帶寬,內存(容器連接數,線程數) or 第三方系統?

                            第三方系統:

          1.  強依賴,無法降級和后備切換

          2.  弱依賴,可降級跳過或后備可切換。(多個服務提供者提供同樣的服務)

           

              模型建立:

          1.  同樣資源情況下處理能力的比較。(不要僅僅去比較線程數,因為你的資源是cpu,memory等等,線程是表象)因此不要簡單的認為容器間的平等就是設置線程數的平等,不同容器采用的處理模式是不同的,就好比不要用NIO和BIO去比較他們的線程數一樣。這類測試需要關注同等資源這個標準如何建立(load,memory等),同樣的資源下再比較兩者的TPS。適用于流入系統來做壓力測試。(本身的系統消耗決定了處理能力)

          2. 模擬不同RT范圍的場景,不同容器對于資源的消耗程度。(比如模擬后端系統響應時間的范圍,來觀察不同容器并發處理能力及穩定性)。適用于流出系統的強依賴模式。

          3.  通過采用類似于Jetty Continuation或者servlet3的模式來將業務和系統線程池切分開來,加上帶有業務性隔離的服務線程池實現服務切換和降級,比較帶來的損耗是否可以接受,判斷是否換容器。適用于流出系統的弱依賴模式。

           

              總體來說:

          1.  建立統一的資源消耗模型(用實際的消耗來判斷服務器的能力瓶頸)

          2.  根據依賴系統的響應時間來實際模擬場景判斷帶來的影響。(連接消耗在某些場景下已經是九牛一毛的case了,優化本身就沒有太大實際意義)

          3.  對于系統本身是否有除了性能以外的更多需求,比如系統穩定性要求的服務降級和切換。

          4.  容器本身的模式可改進點及可維護性(模塊化等)。

          5.  最后對于慢請求的支持(內部網絡請求往往無法模擬慢請求對java容器的“傷害”,這也就是為什么要加一層http代理的目的)

           

              近期做一下測試比較,給出一些結論性的東西,不過希望大家做測試一定要考慮場景和真實的需求,切勿僅僅為了容器測試而作容器測試。(同時把封裝的jetty層異步調用+業務性隔離的線程池代碼包共享出來)

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 呼图壁县| SHOW| 大渡口区| 岳阳县| 宕昌县| 南涧| 共和县| 五家渠市| 黔东| 宜川县| 云阳县| 夏邑县| 襄汾县| 江孜县| 茌平县| 上犹县| 伊宁市| 揭东县| 兴隆县| 堆龙德庆县| 钟祥市| 金平| 尚志市| 贵州省| 青海省| 梁平县| 定结县| 新昌县| 九江市| 衡东县| 汶川县| 蓬溪县| 丹巴县| 永平县| 德昌县| 宁远县| 绥化市| 南宫市| 乃东县| 沂源县| 奈曼旗|