亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > gen_server tasting 之超簡單名稱服務(再續)

gen_server tasting 之超簡單名稱服務(再續)
2010-01-13 23:15:27  作者:  來源:
   前幾天寫了篇《gen_server tasting 之超簡單名稱服務(續) 》東西,親身體驗了 erlang otp 的強悍威力。這周正好有時間對 vsns/erlang 做個性能測試,驗證傳說中的 erlang 強大威力,其中包括了容錯測試用例,關注在大并發壓力下(13000tps)時,服務 oops 后通過 supervisor restart 時對整體性能的影響。在最后還包括了一些對服務容錯設計上的一些思考。

 

測試用例設計

設計兩個場景,都配置 200 并發壓力:

 

  1. Complex: 通過 socket 混合調用 vsns 服務的 load_all、remove_all、remove、save、load 請求。無 Think time 迭代執行5分鐘。用來取得服務滿負載情況下吞吐量、響應時間及資源利用率性能指標。
  2. Crash: 在執行 Complex 場景過程中通過 kernel_oops 調用來 crash 名稱服務。啟用“continue on error” LoadRunner run-time 選項。用來取得服務滿負載情況下,執行容錯對吞吐量、響應時間及資源利用率性能指標的影響。

環境配置

network_env

 

          環境是很簡單的,精力有限,呵呵。需要說明的是,由于手上只有 Global 100 的 LoadRunner License,所以計劃的 200 并發平均分配到兩個測試機上,而且是啟的獨立 Controller,因此下邊的吞吐量和響應時間結果也只能分別給出了。

 

“服務器”主機配置

          說是服務器,實際是我的辦公機器,HP 商用機。手頭機器有限,呵呵。倒不是沒有其他資源,只是考慮本次測試很原始,純屬個人娛樂,而且自己的機器調調配配、修修改改不麻煩。

 

pc_config

 

          測試機這里就不例了,兩臺也是 HP 商用機,不過配置很好 Intel Core 2 Duo 2.8GHz,2G 內存,呵呵夠用。

 

測試執行

執行的力工細節就不說了,總之是負載很大,服務器飽和,有圖為證。

 

taskmgr

 

appmon_workload

 

測試結果

1. Complex 場景

 

測試機 A 的吞吐量和響應時間曲線。

complex_tps_1

 

complex_rt_1

 

測試機 B 的吞吐量和響應時間曲線。

 

complex_tps_2

 

complex_rt_2

 

complex_cpu

 

          注:其中的 “Wait%” 指標是無效的,nmon (nmon_x86_debian31(11f) 版本)采集的結果都是 0。我認為這是個 Bug,再不就是 debian 31 和 ubuntu 8.10 差異造成的。已經將該問題提交到 IBM developerWorks 的 AIX and UNIX Performance Tools Forum,不過沒人回答 :(。難不成 je 的哪位大蝦能給個意見?

 

complex_mem

 

2. Crash 場景

 

測試機 A 的吞吐量和響應時間曲線。

 

crash_tps_pass_1

Pass Transcation.

 

crash_rt_1

 

crash_tps_fail_1

Fail Transcation.

 

測試機 B 的吞吐量和響應時間曲線。

 

crash_tps_pass_2

Pass Transcation.

 

crash_rt_2

 

crash_tps_fail_2

Fail Transcation.

 

crash_socket_10053

 

注:其中的 “Error: reset_conn once.” 是測試腳本中通過 lr_error_message 函數人為寫入的,調試用。

 

crash_mem

 

結果分析

          在 Complex 測試場景中,可以看到 vsns 服務在滿負載情況下吞吐量能夠持續、穩定的達到 13000tps(兩臺測試機總合),響應時間也穩定保持在 0.015 秒上下。在服務器資源方面,很明顯 CPU 和內存已經飽和,也是因為我這個臨時的“服務器”總共才 512M 物理內存,還沒測試機一半強(2G),不過這也恰恰說明 erlang 面對艱巨條件時還是很堅挺的,呵呵。等回頭和同事商量給我這臺充當服務器的辦公機器加條內存,估計那樣一定會提高不少。當然這和測試中對 vsns 提交存儲的 key/value 大小有直接關系。

          可能對于 Crash 測試場景更有意義,現在就來一起看看。CPU 和內存也與上面一樣,大負載下全都飽和。吞吐量和響應時間也和 Complex 測試一致。在整個 3 分鐘的測試場景中,Crash 的 kernel_oops 方法是在 1 分 30 秒時提交的,通過響應時間可以明顯看到其中的變化,響應“加快”的原因在于 Socket 連接被服務器斷開造成的(此時調用都很快失敗)。saleyn_tcp_serverk 中的 client 通信進程由于 name_server 進程 crash 而調用失敗后紛紛退出,造成綁定在該進程上的 socket 全部失效而強制關閉。在這樣的大的吞吐量下,共造成了 99 個事務報 Connection Abort(10053)異常。隨后 erlang 監控進程將 name_server 進程啟動,服務恢復正常。但從測試結果來看,兩臺測試機都有 10 秒左右的受影響時期,通過觀察發現其間不是全部 vsns 服務調用都失敗,而是部分正常部分失敗。通過失敗調用的吞吐量曲線可以看到,在 13000tps 壓力下 erlang 進程 crash 后,在容錯重新啟動過程中,對于 client 來講每秒會有50個左右的調用請求失敗。同時在給出的可用物理內存曲線中可以看到,進程 crash 后有明顯的 5M 內存釋放發生,當然這包括 name_server 保存的進程字典數據。個人認為上面這些可以說明,erlang 進程的監控樹結構是可以有效達到容錯目的,但在大負載情況下,服務的 crash 對吞吐量影響還是不小的,起碼性能下降不會很快緩解,當然這會考慮負載輕重。總體還講還可以,尤其還是在這么爛的臺式機上,呵呵。

 

對服務容錯設計的思考

          在進行上面所說的這個 Crash 場景測試時,在考慮是否應該將服務異常或不可用的信息暴露給客戶端應用(服務消費者)呢?尤其是服務間存在互相委托關系時,比如開發 Service Hub 服務聚合或是 Service 擴展服務時。我想這可以有 3 種設計:

 

  1. 一旦服務失敗立即返回調用者,并給出異常描述(原因)。這種設計會將服務錯誤完全暴露,將重試(容錯)的機制依賴到客戶端。
  2. 服務失敗后一直等待服務就緒,什么時候正常了,什么時候重試。雖然容錯對客戶端透明了,但會引入延遲,對于實時的要求不好滿足。
  3. 對上邊第2點的補充,即服務重試次數和等待時間進行限定/可配置。就像erlang otp的supervisor設計相似。

          很明顯,第 3 種方式應該最有優勢,兼顧了服務性能和容錯處理,當然實現起來可以也最復雜了。

 

用到的幾個優化方法

1. 啟用 linux kernel epoll
configure --enable-kernel-poll
erl +K true parameter

2. 擴大 linux nproc 和 nofile limits
* soft nproc 2407
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

3. 擴大 linux 和 erlang 端口
echo 1024 65535 > ip_local_port_range
set ERL_MAX_PORTS = 102400

4. 啟用 erlang SMP
erl -smp enable +S 2

5. 擴大進程數量
erl +P 102400

6. 擴大 linux tcp 協議棧中讀寫緩沖區大小,將影響 tcp window 大小
echo "640000" > /proc/sys/net/core/rmem_default
echo "640000" > /proc/sys/net/core/rmem_max
echo "640000" > /proc/sys/net/core/wmem_default
echo "640000" > /proc/sys/net/core/wmem_max

 

          本文涉及的內容只涉及基礎性的驗證、測試,未涉及具體的 erlang 軟件,且待我深入研究。Erlang rising~

 

          附件 vsns_perf.zip 為備份目的所添加,請勿下載使用。

 

// 2009.02.16 16:29 添加 ////

 

          關于 nmon 未能在 ubuntu 8.10 上獲得 cpu wio% 指標的問題,想到有可能是未以 root 權限啟動 nmon 進程的原因,不過能過剛才驗證,結果還不是一樣,不理想。盡管 vmstat 取得/確認了系統已經出現 wait io,但 nmon 的 wio% 采集結果還始終是 0。nmon_x86_debian31(11f) 版本對 ubuntu 8.10 的支持很失望。

 

Shell代碼 復制代碼
  1. sudo -i   
  2.   
  3. nmon -c310 -s1 -r -f  

 

// 2009.02.17 17:04 添加 ////

 

          呵呵,說是遲那是快。上面說的 nmon (nmon_x86_debian31(11f) 版本)采集的“Wait%” 結果都是 0 的問題,nagger 已經確認并已提供新的 nmon_x86_12a 版本下載 ,包括了最新的 Ubuntu 8.10 系統的 nmon 映像。真的很強悍。


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区
国产伦精品一区二区三区精品视频 | 日韩欧美激情一区二区| 欧美情侣性视频| 国产精品久久久久9999| 国产精品久久久久久久7电影| 国产精品久在线观看| 国产精品乱码| 欧美人与物videos| 国产精品日韩欧美一区二区| 国产精品裸体瑜伽视频| 国产精品电影观看| 欧美激情亚洲国产| 亚洲va男人天堂| 日本精品免费在线观看| 欧美日韩精品综合| 免费国产成人av| 国产女大学生av| 91久久精品国产91性色| 久久精品综合一区| 久久精品国产亚洲| 久久亚洲精品毛片| 亚洲精品自在在线观看| 日本一区二区三区四区高清视频| 日产中文字幕在线精品一区| 欧美深夜福利视频| 国产欧美日韩一区二区三区| 91九色国产在线| 日韩中文字幕在线视频播放| 国产精品精品视频| 亚洲色图自拍| 欧美亚洲日本在线观看| 国产美女永久无遮挡| 久久久在线观看| 久久精品91久久久久久再现| 精品久久中出| 日本一区二区三区视频免费看 | 亚洲精品成人自拍| 日韩欧美视频一区二区三区四区| 欧美激情亚洲天堂| www国产精品内射老熟女| 国产高清一区二区三区| 国产精品久久久对白| 亚洲91精品在线观看| 欧美日韩电影一区二区三区| 成人一区二区av| 精品国产一区二区三区久久| 一区二区三区四区在线视频| 日韩人妻精品无码一区二区三区| 欧美变态另类刺激| 久久久伊人日本| 免费av在线一区| 欧美日韩一区在线播放| 国产精品av免费在线观看| 国产精品免费一区二区三区| 性色av一区二区咪爱| 国产区亚洲区欧美区| 色天天综合狠狠色| 性色av一区二区三区在线观看| 精品一区二区三区毛片| 国产成人精品日本亚洲| 欧美精品久久久久久久免费观看| 日韩午夜视频在线观看| 97成人在线观看视频| 国产精品成人国产乱一区| 青青久久av北条麻妃黑人| 99色精品视频| 欧美精品一区在线播放| 欧美精品一区二区三区三州| 国产国产精品人在线视| 一区二区三区不卡在线| 精品视频在线观看| 国产精品久久久久久中文字| 欧美怡红院视频一区二区三区| 久久人人97超碰人人澡爱香蕉| 亚洲字幕在线观看| 国产欧美精品xxxx另类| 国产精品视频永久免费播放| 日本wwwcom| 国产黄色激情视频| 日韩在线视频在线观看| 91精品国产高清久久久久久| 欧美日韩国产成人在线| 国产呦系列欧美呦日韩呦| 日韩视频精品在线| 日韩视频在线免费播放| 国产av熟女一区二区三区| 视频一区二区在线| 久久久爽爽爽美女图片| 亚洲熟女乱色一区二区三区| 成人av男人的天堂| 亚洲最大成人在线| 99视频在线| 亚洲国产欧洲综合997久久| 成人免费xxxxx在线观看| 免费av在线一区| 国产美女三级视频| 一区视频二区视频| 99视频精品全部免费看| 亚洲一区二区三区欧美| 91观看网站| 日本一区二区三区四区高清视频| 国产成人亚洲精品无码h在线| 日韩欧美精品在线不卡| 久久国产一区二区三区| 韩国三级日本三级少妇99| 国产精品久久久久7777婷婷| 国产在线久久久| 一本色道久久99精品综合| www.com毛片| 无码中文字幕色专区| 久久精品99| 蜜桃成人免费视频| 一区二区视频在线播放| 91精品国产沙发| 日韩欧美三级一区二区| 国产精品久久久久久搜索| 国产伦精品一区二区三区免费视频| 亚洲一区国产精品| 久久久久久久激情| 麻豆av免费在线| 亚洲精蜜桃久在线| www.日本久久久久com.| 国产一区二区精品在线| 伊人婷婷久久| 色妞欧美日韩在线| 国产一区二区三区四区五区加勒比 | 国产欧美精品一区二区三区介绍 | 国产日韩av在线| 亚洲一区二区三区毛片| 久久久久久久久久福利| 国产中文日韩欧美| 天堂va久久久噜噜噜久久va| 久久久999成人| 成人免费福利在线| 欧美久久久久久久久久久久久 | 国产精品一区二区三区不卡| 欧美一级视频在线播放| 国产精品极品美女在线观看免费 | 国产精选一区二区| 日韩欧美精品在线不卡| 国产精品成人免费视频| 国产盗摄xxxx视频xxx69| 国产一级黄色录像片| 日韩av一区二区三区在线| 国产精品久久电影观看| 国产精华一区二区三区| 精品视频在线观看一区| 午夜午夜精品一区二区三区文| 日韩中文字幕视频| 91久久精品视频| 国产日韩欧美一区二区| 日本精品久久中文字幕佐佐木| 国产精品盗摄久久久| 久久久综合香蕉尹人综合网| 91精品久久久久久| 青青在线视频免费| 国产精品视频最多的网站| 国产精国产精品| 高清亚洲成在人网站天堂| 欧美在线视频观看免费网站| 亚洲综合av影视| 不卡av日日日| 久久久久五月天| 91精品国产综合久久久久久久久| 黄色一级视频片| 欧美中文字幕视频| 视频一区三区| 亚洲一区二区三区在线免费观看| 国产精品国产自产拍高清av水多| 久久艹中文字幕| 777精品久无码人妻蜜桃| 国产精品永久免费视频| 美日韩免费视频| 欧美一级大片在线观看| 欧美一级视频在线观看| 亚洲制服中文| 久久国产天堂福利天堂| 国产精品美女午夜av| 久久久久这里只有精品| 久色视频在线播放| 91精品国产综合久久香蕉922 | 国产精品三区四区| 日日骚久久av| 久久99精品久久久水蜜桃| 久久久婷婷一区二区三区不卡| 成人av免费在线看| 成人免费毛片在线观看| 国产女人水真多18毛片18精品| 国模吧一区二区| 美国av一区二区三区| 蜜桃传媒视频麻豆第一区免费观看| 欧美一二三区| 国内一区在线| 麻豆精品视频| 国产免费一区二区三区香蕉精| 国产一区一区三区| 国产伦精品一区二区三区精品视频| 国产伦精品一区二区三区免 | 国产综合av在线| 国产一区二区视频在线免费观看|