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

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

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

    性能調優概述

    性能調優無疑是個龐大的話題,也是很多項目中非常重要的一環,性能調優的難做是眾所周知的,畢竟性能調優涵蓋的面實在是太多了,在這篇blog中我們蜻蜓點水般的來看看性能調優這項龐大的工程都有些什么過程,同時也看看這些過程中常見的一些做法。
    確定性能調優的目標
    性能調優,首先是要確定性能調優的目標是什么,如果現在應用已經滿足了需求,就沒必要去做性能調優了,畢竟不經過一個系統的過程,其實是無法確定你所做的性能調整是否真的調優了性能,是否沒有造成應用中其他的問題,所以確定性能目標是非常重要的,在定義性能目標的時候通常這么定義的呢:
    1、最大并發數
    2、Quality of Service
       服務的質量,在軟件系統方面我們認為主要表現在請求的出錯率,系統的load等。
    3、最長響應時間
       對于任何請求所能承受的最大響應時間。
    4、TPS
       每秒需要支持的最大事務數,最典型的指標是:“某頁面最高需要支撐每秒7000次的訪問次數”。
    例如一個web系統,需要定義出來的目標是:
    并發目標:最高支撐200并發;
    QoS:出錯率須控制在萬分之一,系統的load最高只能到達10;
    TPS:每秒完成7000次請求的處理;
    最大響應時間:最長允許的響應時間為5秒。
    至于請求的平均響應時間這些就不在性能調優目標中定義,因為要達到TPS的要求,響應時間是必須要達到一個級別的,而且響應時間隨著高并發是會出現劣化的。
    當然,還可以把性能指標定到更為細節,例如某個方法的TPS在100并發時需要達到多少。
    在確定好了性能目標后,重要的就是如何來測量系統的性能了。
    測量系統性能
    對于新系統而言,需要評估出其正式運行時的數據量的增長情況;而對于已運行的系統,則需要根據監控獲取到系統的運行數據(例如高峰并發數、系統的響應速度情況、系統的load、網絡流量、每類請求在總的請求中所占的百分比等)。
    對于新系統而言,要評估出具體的性能相對來說稍微好做一點,因為此時系統通常較為單純,數據量的增長也不可能是一夜之間增長的,因此基本可以按照一種正常的方法在測試環境評估出其正式運行的性能。
    而對于已運行的系統而言,則較為麻煩,因為通常來講要在測試環境中模擬正式運行環境基本是不太可能的,因此這個時候通常要采取一些模擬的方法或更高壓力的方法來盡量更為準確的評估出系統的性能。
    在測試系統性能時,通??刹捎玫姆椒ㄓ校?br /> 1、單元測試;
       可借助單元測試來測試某個請求的性能;
    2、壓力測試;
       壓力測試無疑是測量系統性能中最常采用的方式,根據定義的性能目標對系統進行壓力測試,以確定系統是否滿足性能要求,同時也可以根據壓力測試的結果來分析系統的瓶頸,進而進行對應的調優,可用于做壓力測試的工具還是不少的,像loadrunner、jmeter等等,不過壓力測試這個話題實在太大了,不在這里展開去講了,不過我也不怎么懂就是,呵呵。
    分析系統性能瓶頸
    根據測量系統性能的結果,多數是可以分析出系統性能的瓶頸,同時還可以結合像jvm堆棧、jprofiler、系統日志等來進行進一步的確定,另外也可以根據性能調優人員的經驗,例如可以去了解開發人員是否采用了不適合的數據結構等。
    簡單說一個線程分析的例子:
    借助kill -3 pid來獲取到目前jvm的線程堆棧信息,特別需要關注的是里面wait for monitor這樣的線程,這種線程是指在等待鎖的線程,等待一兩分鐘后再次kill -3 pid,看看這些wait for monitor的線程的變化情況,這對于分析線程中是否存在不合理的競爭過高的鎖的分析是非常重要的。
    這一步無疑也是性能調優過程中最難的一步了,分析系統性能瓶頸這種基本只能結合實際例子來講了,正確在后續抽取一兩個例子來進行講解。
    性能調優
    在分析出系統性能的瓶頸后,其實這一步相對來說還好做些,當然,需要建立在對軟硬件知識都有很好的深入了解的基礎上,在這里列舉一些比較常見的性能調優的手段,多數是抄來或google來的,自己在這方面的經驗還不多,希望大家多加指點,:)
    Redhat Linux內核
    Redhat linux內核版本升級到2.6,2.6和2.4的差別還是很多的,例如對epoll的支持、NPTL的采用;epoll的支持對于java而言也是很重要的,在高并發的情況下nio是否采用epoll還是有挺大的差別的;而NPTL的采用對于多線程程序而言更是極為重要。
    另外需要關注像linux的File Handles是多少、network buffer是多少、MTU是多少、Memory Page size是多少等等。
    JVM
    JVM調優的文章相對來說比較多,大家需要了解的主要是-Xms/-Xmx、并行GC、-XX:MaxPermSize/-XX:MaxNewSize、-XX:ThreadStackSize、NIO采用epoll等等。
    簡單的列這兩個,其實性能調優的手段還有非常的多,例如簡單的增加CPU、買更快速度的硬盤、增加內存、提升網絡帶寬等這些從硬件角度下手的方式,還有像數據庫調優、應用服務器調優等等。

    暫時就寫這么些了,以后列一些具體的例子來寫,那樣更為清晰些,這樣的話更多的是講述一下過程,可以大概了解下做性能調優應該去學習的知識點,^_^,也歡迎有經驗的同學們貢獻出一些實例的分享。

    posted on 2008-06-29 23:37 BlueDavy 閱讀(6606) 評論(10)  編輯  收藏 所屬分類: Internet

    評論

    # re: 性能調優概述 2008-06-30 13:07 如坐春風

    做外包永遠接觸不到這方面的內容,悲哀?。?nbsp; 回復  更多評論   

    # re: 性能調優概述[未登錄] 2008-06-30 14:05 jazzy

    最近一直在通過壓力測試來重現生產環境下的performance issue,至今未果。。。  回復  更多評論   

    # re: 性能調優概述 2008-06-30 17:53 Robin's Java World

    @如坐春風
    誰說的?可能只是你做的項目小才沒遇到。  回復  更多評論   

    # re: 性能調優概述 2008-06-30 18:26 混沌中立

    @如坐春風


    如果你接觸到要求比較高的項目,你就會體會到外包客戶在這個方面比較苛刻的要求的。到時候,整天都在調整,測試,調整,測試。壓力很大。  回復  更多評論   

    # re: 性能調優概述 2008-06-30 23:09 如坐春風

    @Robin's Java World

    也許吧。項目主要是實現功能,這方面的需求沒有遇到過。  回復  更多評論   

    # re: 性能調優概述 2008-06-30 23:10 如坐春風

    @混沌中立

    這么說調優也是一個圍城了。
      回復  更多評論   

    # re: 性能調優概述 2008-07-24 13:41 zhuxing

    1、不同的場景,會很大程度上決定使用的調優方法的差異
    例如針對一個后臺分布式web應用進行調優和針對一個類似有IDE的產品進行調優就會有很大的不同。

    2、目標性能瓶頸也很很大程度上決定調優方法的差異
    例如你面臨的調整到底是時間占用的問題還是空間占用的問題

    ...



    最后,很多時候開發人員需要對代碼進行時間占用的優化,可以使用很多工具進行監測,但是千萬別忘記一點,那就是簡單的時間戳作用可是很大的啊...  回復  更多評論   

    # re: 性能調優概述 2008-07-29 09:50 Jack.Wang

    老師很強大!  回復  更多評論   

    # re: 性能調優概述 2008-08-31 22:34 alonesword

    winform 下的調優,白盒測試,我一般使用 aqtime 感覺不錯。很快就能找到 Hotpot  回復  更多評論   

    # re: 性能調優概述[未登錄] 2009-07-11 07:41 Jim

    這篇文章比較high level談了性能調優,期待一些理論聯系實踐的例子和精彩闡述。最近感覺性能調優的確是個無底洞,但應該一步一步,遵循先重要的緊急的瓶頸,follow測量-理解-調整-測量的步驟來調優。  回復  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久久国产免费看 | 天天摸天天操免费播放小视频| 国产成A人亚洲精V品无码性色 | 亚洲视频一区二区在线观看| 青柠影视在线观看免费| 国产亚洲精品资在线| 国产大片免费天天看| 亚洲日韩欧洲无码av夜夜摸| 成在线人直播免费视频| 亚洲精品无码你懂的网站| 久久国产福利免费| 国产亚洲福利精品一区| 久久精品国产免费一区| 久久精品国产亚洲av麻豆| 69免费视频大片| 亚洲va精品中文字幕| 妞干网在线免费观看| 国产精品亚洲综合网站| 国产偷窥女洗浴在线观看亚洲 | 亚洲欧洲日产国码www| 免费国产成人高清在线观看网站| 亚洲日本人成中文字幕| 午夜男人一级毛片免费 | 久久久久se色偷偷亚洲精品av| 美女视频黄的全免费视频网站| 亚洲综合国产成人丁香五月激情| 天天看片天天爽_免费播放| 国产精品亚洲天堂| 国产综合亚洲专区在线| 97免费人妻在线视频| 亚洲午夜精品久久久久久app| 免费一区二区三区四区五区| 香蕉视频在线免费看| 亚洲欧洲国产成人精品| 一本色道久久88综合亚洲精品高清| ww在线观视频免费观看w| 亚洲人成网站在线播放影院在线| 免费看国产精品3a黄的视频| 美女黄色免费网站| 亚洲色成人网一二三区| 免费看一级做a爰片久久|