qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          性能測試系統(tǒng)計數(shù)器與硬件分析

          性能計數(shù)器(Performance Counter),也叫性能監(jiān)視器。一個人健康狀況如何,我們通過對其做各項體檢獲得相關(guān)的狀況指標,如血壓、心跳,肺活量等。那么在做性能測試過程中,整個系統(tǒng)的軟硬件進行監(jiān)控也必不可少,監(jiān)控所獲得的數(shù)據(jù)也是我們分析系統(tǒng)性能的主要依據(jù)。

            在整個系統(tǒng)中,對于不同的軟件和硬件,我們對其監(jiān)控的指標也不一樣,就像一個公司中的所有人員,其每個人的職責(zé)不同,評判和考核的標準也是不一樣的。下面將從系統(tǒng)的各個方面進行分析。

           

          操作系統(tǒng)性能計數(shù)器                                                                           

           

            操作系統(tǒng)監(jiān)控器,主要監(jiān)控操作系統(tǒng)級別上的系統(tǒng)性能表現(xiàn),這里分析最常見的windows操作系統(tǒng)與Linux操作系統(tǒng)。

           

          window 操作系統(tǒng)的主要性能計數(shù)器

          Windows操作系統(tǒng)的性能監(jiān)控:

           

          Window系統(tǒng)下的計數(shù)器比較多,主要技術(shù)器如下:

           

          Linux/UNIX 操作系統(tǒng)的主要性能計數(shù)器

           

            Linux系統(tǒng)的命令和UXIN的有些差別,在UNIX系統(tǒng)下的主要計數(shù)器監(jiān)控命令是vmstatiostattopsarsag(圖形方式,需要XServer 支持);而在linux中,沒有isostat命令。另外他們的輸出結(jié)果也稍有差別。

           

            上面羅列了windowslinux系統(tǒng)下的性能計數(shù)器,分析一個操作系統(tǒng)的性能,應(yīng)該查看哪些指標。那么操作系統(tǒng)的載體是系統(tǒng)硬件。那么硬件的性能直接影響著操作系統(tǒng)的性能。下面就簡單分析一下系統(tǒng)的硬件。CPU、內(nèi)存、磁盤。

           

          CPU分析                                                                                         

           

            CPU的性能對于計算機整體的性能起著主導(dǎo)作用。對于早期對計算機甚至直呼其CPU的型號,如 386 486、奔三,奔四。

            那么我們CPU性能最直接的評估就是查看其CPU工作頻率,就是CPU的時鐘頻率,單位為是Hz。隨著CPU的發(fā)展,主頻由MHz現(xiàn)在的GHz

            (1GHz=1000MHz=1000000KHz=1000000000Hz

            處理器除了主頻指標外,還有另外兩個密切相關(guān)的概念:倍頻與外頻。外頻是cpu的基準頻率,單位是MHz。外頻是CPU與主板之間同步運行的速度,而且目前的絕大部分計算機系統(tǒng)中外頻與是內(nèi)存與主板之間的同步運行速度,在這種方式下,可以理解為CPU的外頻直接與內(nèi)存相連通。實現(xiàn)兩都的同步運行狀態(tài);倍頻即主頻與外頻之間的倍數(shù)。

            主頻 外頻 倍數(shù)

           

          如何真對CPU進行分析?

          1)查看System\%Total Processor Time 性能計數(shù)器的計數(shù)值。

            該計數(shù)值用于體現(xiàn)服務(wù)器整體的處理利用率,對于多處理器來講,該數(shù)值體現(xiàn)的是所有CPU的平均利用率。如果該數(shù)值大于持續(xù)大于90% ,表示CPU有可能存在平靜。

          2)查看每個CPUProcessor\%User Time 

            Processor\%User Time是指系統(tǒng)的非核心消耗的CPU時間,如果該值較大,可以考慮通過算法優(yōu)化來降低該值。如果該服務(wù)器是數(shù)據(jù)庫服務(wù)器,Processor\%User Time值大的原因很可能是數(shù)據(jù)庫的排序或是函數(shù)操作消耗了過多的CPU時間,此時可以考慮對數(shù)據(jù)庫進行優(yōu)化。

          3)查看Processor\%Processor Time 和 System\Processor Queue Length

            查看System\Processor Queue Length 計算器,當(dāng)該計數(shù)器的值大于CPU數(shù)量的總數(shù)加1時,說明CPU產(chǎn)生了賭塞。但產(chǎn)生賭塞時,Processor\%Processor Time的值不一定很大,此時就必須查看CPU賭塞的原因。

          4)查看%DPC Time 

               %DPC Time 是另一個需要關(guān)注的內(nèi)容,該計數(shù)值越低越好。在多CPU系統(tǒng)中,如果該值大于50% 并且Processor\%Processor Time值非常高,則考慮加一個網(wǎng)卡來提高性能。

           

           

          磁盤I/O分析                                                   

           

               硬盤應(yīng)該是計算機硬件中發(fā)展最慢的設(shè)備,很多常見瓶頸都是由于硬盤的讀/寫速度慢導(dǎo)致的。提高硬盤讀/寫性能無非是提高轉(zhuǎn)速、提高單碟容量,增加緩存和更新接口,因為傳統(tǒng)的硬盤是物理旋轉(zhuǎn)讀寫數(shù)據(jù),所以轉(zhuǎn)速的提高相當(dāng)困難;而提高單碟容量也存在一寫的技術(shù)瓶頸,1TB的單碟的容量想要突破還也需要時間。

            對于傳統(tǒng)的溫氏硬盤到現(xiàn)在速度也只能達到120MB/s的讀取速度,這個速度還真對大文件的讀寫,而對于服務(wù)器大量4KB的小文件讀/寫速度,會驚人的下跌至1MB不到,而對應(yīng)的IOPS(每秒磁盤的讀/寫次數(shù))會低得可憐,大量的數(shù)據(jù)都在排隊從硬盤上讀取到內(nèi)存中,再利用內(nèi)存的超大帶寬完成操作。這也是為什么內(nèi)存大的系統(tǒng)比較快的原因。但內(nèi)存的速度雖然比硬盤快得多,也有其致命的缺點,一旦斷電,內(nèi)存中的數(shù)據(jù)將全部丟失。

            IOPSInput/Output Per Second)每秒磁盤的輸入/輸出量(或讀/寫次數(shù)),是衡量磁盤性能的主要指標之一。IOPS是指單位時間內(nèi)系統(tǒng)能處理的I/O請求數(shù)量,一般以每秒處理的I/O請求數(shù)量為單位。

            另一個重要指標是數(shù)據(jù)吞吐量(Throughput),指單位時間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。對于大量順序讀/寫應(yīng)用,則更關(guān)注吞吐量指標。

          傳統(tǒng)的溫氏硬盤完成一個I/O請求所花費的時間包括 尋道時間、旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時間三部分。

            * 尋道時間,是指將讀寫磁頭移動至正確的磁道上所需要的時間。目前磁盤的平均尋道時間一般在3~15ms

            * 旋轉(zhuǎn)延遲,是指盤片旋轉(zhuǎn)將請求數(shù)據(jù)所在扇區(qū)移至讀/寫磁頭下方所需要的時間。7200轉(zhuǎn)速的磁盤,平均旋轉(zhuǎn)言辭大于為60 * 1000/7200/2=4.17ms

            * 數(shù)據(jù)傳輸時間,是指完成傳輸所請求的數(shù)據(jù)所需要的時間。目前SATA II 可達到300MB/s的接口數(shù)據(jù)傳輸速率。數(shù)據(jù)傳輸時間通常遠小于前兩部分時間。

           

          如何分析磁盤I/O

          1)與 Processor/Privileged Time 合并進行分析。

               如果在Physical Disk 計算器,只有%Disk Time 值較大,其它值都比較適中,則硬盤可能會是瓶頸。若幾個值都比較大,且數(shù)值持續(xù)超過80% ,內(nèi)里可能是內(nèi)存泄漏。

          2)根據(jù)Disk sec/Transfer 進行分析

                一般來說,定義Transfer 數(shù)值小于15毫秒為優(yōu)秀,介于15~20毫秒之間為良好,30~60毫秒之間為可以接受,超過60毫秒則需要考慮更換硬盤或硬盤的RAID方式。(注意:各種不同的RAID其計算方式也不完全相同)

           

             固態(tài)硬盤SSD是一種電子裝置,避免了傳統(tǒng)硬盤在尋道和旋轉(zhuǎn)上的時間花費,存儲單元尋址開銷大大降低,因些IOPS可以非常高。

           

           

          內(nèi)存分析                                                                                            

           

            為什么固態(tài)硬盤的無法做到內(nèi)存的存取速度呢?這是因為ROM固態(tài)硬盤和RAM內(nèi)存的實現(xiàn)原理不同導(dǎo)致的。

            內(nèi)存的發(fā)展速度已經(jīng)達到了第五代DDR內(nèi)存(一般用于顯卡上),而我們通常主板上的使用的都是第三代DDR內(nèi)存,內(nèi)存的主要性指標是在讀寫/帶寬上,而影響帶寬上的指標主要是內(nèi)存通道及內(nèi)存頻率。

            現(xiàn)在常見的內(nèi)存一般型號為DDR3 1333MHz ,我們可以通過更換更高頻率或更低時序的方式來提升內(nèi)存的帶寬。(內(nèi)存時序是描述內(nèi)存條性能的一種參數(shù))

            內(nèi)存頻率比較好理解,現(xiàn)在“發(fā)燒”級別的內(nèi)存頻率可以做到2400MHz,相對于1333MHz的默認頻率幾乎有了一倍的提升,這種頻率的提升,可以換來帶寬從16GB24GB的提升,如果再能降低時序,那么結(jié)果會進一步提升。(關(guān)于內(nèi)存時序概念請參考其它文獻)。

          另外一個提升策略就是通道,簡單來說就是讓多根內(nèi)存并行和內(nèi)存控制器進行交互,從而成倍地提升吞吐能力。對于內(nèi)存比較了解的朋友,雙通道、三通道甚至四通道這些名詞應(yīng)該不會陌生。

           

          內(nèi)存分析指標

          1)查看Memory\Available Mbytes指標。

            這個計數(shù)器是描述系統(tǒng)可用內(nèi)存的直接指標,在對系統(tǒng)進行操作系統(tǒng)級別的內(nèi)存分析時,首先通過這個指標建立一個初步的印象,了解性能測試過程中系統(tǒng)是否仍然有足夠的內(nèi)存可用。

          如果這個指標的數(shù)據(jù)比較小,系統(tǒng)可能出現(xiàn)了內(nèi)存方面的問題。

           

          2)Pages/sec  、 Pages Read/sec Page Faults/sec指標

            操作系統(tǒng)經(jīng)常會利用磁盤交換的方式提高系統(tǒng)可用的內(nèi)存量或內(nèi)存的使用效率。這三個指標直接反映了操作系統(tǒng)進行磁盤交換的頻度。

            如果Pages/sec 的計數(shù)器持續(xù)高于幾百,很可能會有內(nèi)存方面的問題產(chǎn)生,但Pages/sec的值很大不一定表明內(nèi)存有問題,而可能是運行使用內(nèi)存映射文件的程序所導(dǎo)致。Page Faults/sec 值表示每秒發(fā)生頁面失效的次數(shù),頁面失效次數(shù)越多,說明操作系統(tǒng)向內(nèi)存讀取的次數(shù)越多。些時還需要查看Pages Read/sec 的計數(shù)值,該計數(shù)器的閥值為5,如果計數(shù)值超過5,則可以判斷內(nèi)存存在問題。

           

          3)根據(jù)Physical Disk計數(shù)器的值分析性能瓶頸 

               Physical Disk 計數(shù)器的分析包括對Pages Read/sec和 %Disk TimeAverage Disk Queue Length 的分析。如果Pages Read/sec 很低,同時%Disk TimeAverage Disk Queue Length 的值很高,則可能有磁盤瓶頸。但是,如果隊列長度增加的同時 Page Read/sec 并未降低,則是由于內(nèi)存不足。

           

          ------------------------------
          補充  其實針對不同的場景 我們應(yīng)采用不同的分析工具和參數(shù)  例如 我們要監(jiān)控web服務(wù)器的網(wǎng)絡(luò)開銷  那么我們可以使用httpwatch 和服務(wù)端的分析網(wǎng)絡(luò)協(xié)議的軟件 計算出整個系統(tǒng)網(wǎng)絡(luò)負荷,或者我們監(jiān)控數(shù)據(jù)庫io  我們就要監(jiān)控系統(tǒng)io 是不是得到負荷  有沒有排隊的現(xiàn)象等等 

              由于篇幅問題,進程分析,網(wǎng)絡(luò)分析被遺漏,后面有必要的話會進行補充。

           

           

          posted on 2014-02-11 11:35 順其自然EVO 閱讀(376) 評論(0)  編輯  收藏 所屬分類: 性能測試

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 兴和县| 巨野县| 江达县| 潜江市| 桃源县| 曲水县| 达日县| 工布江达县| 四子王旗| 库伦旗| 黑龙江省| 公主岭市| 林口县| 沛县| 临汾市| 庆阳市| 枣阳市| 黄浦区| 溧水县| 富蕴县| 孟津县| 涞源县| 通许县| 久治县| 庆安县| 龙里县| 奈曼旗| 安丘市| 留坝县| 威宁| 武邑县| 临朐县| 什邡市| 靖边县| 博乐市| 措美县| 华坪县| 始兴县| 鄱阳县| 西乌珠穆沁旗| 安达市|