利用Windows效能計數器分析軟體產品的效能瓶頸

查志強發表於2015-01-13

【原文:http://blog.163.com/jack_test/blog/static/166620663201061594459936/



【摘要】
本文詳細介紹了Windows效能計數器在幫助查詢軟體產品效能瓶頸中的作用以及使用方法等,為開發、測試以及系統分析人員介紹一種簡潔高效效能跟蹤評估手段。
1          概述
軟體產品常常會出現這樣的情況:產品效能因某些無法預料的瓶頸而受到干擾,導致程式的處理效率降低,效能得不到充分的發揮。如何快速有效地找到軟體產品的效能瓶頸,則是我們感興趣的內容之一。
Windows 2000 附帶的 Windows 效能監視器提供的效能計數器具有強大的功能,可以使我們能夠獲得系統或程式的各種詳細資訊,比如系統程式、CPU 利用率、磁碟活動、記憶體使用等等,巧妙靈活地利用這一工具,可以有效地幫助我們確定軟體產品效能瓶頸所在。
2          使用說明
Windows 效能監視器置於 Windows 作業系統之中,它允許使用者訪問系統效能資料。訪問效能監視器的簡單方法是,從“開始”選單中,選擇“開始”=>“程式”=>“管理工具”=>“效能”即可啟動。如果“程式”選單中沒有“管理工具”程式組,請從控制皮膚中選擇。
圖(1)展示了最初的效能監視器視窗。利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(1)效能監視器視窗


2.1         效能監視動態顯示模式
圖(1)顯示的是Winword程式CPU佔用情況實時分佈圖。
在檢視區,點選右鍵,選擇“新增計數器”,出現如下圖所示視窗。
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(2)新增計數器



       假設需要對Winword程式的CPU佔用時間和控制程式碼數進行監視,則進行如下操作:
(1)       從“新增計數器”視窗中,選擇效能物件為“Process”(程式);
(2)       選中“從列表選擇例項”;
(3)       選中需要監視的程式,如Winword;
(4)       選中“從列表選擇計數器”,從列表框中選中需要監視的特性,如CPU佔用時間、控制程式碼數等;
(5)       設定完畢,點選“新增”按鈕,關閉視窗,即可實時監視選中的引數。
動態監視的缺點是:監視週期只有1分40秒時長,並且資料不能連續輸出到檔案中。不能
做後續分析。
2.2         效能資料連續跟蹤統計
2.2.1          效能採集設定
當需要對效能資料進行連續統計,並進行後續分析時,我們可以採用另外一種方式:啟用計數器日誌
圖(3)展示了啟用計數器日誌的效能監視器視窗。
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(3)新增計數器



我們以監視Winword程式的CPU佔用時間、實體記憶體和虛擬記憶體為例進行說明。
(1)              如上圖所示,在左邊樹圖區,展開“效能日誌和報警”項,在該分支下選中“計數器日誌”;
(2)              在右邊檢視區,點選右鍵,選擇“新建日誌設定”,在彈出的對話方塊中輸入一個名稱,如“MyCount”,應用後出現如下圖(4)所示屬性設定對話方塊;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(4)計數器屬性設定



(3)              點選“新增”按鈕,出現如圖(2)所示的“新增計數器”對話方塊;
(4)              從“新增計數器”視窗中,選擇效能物件為“Process”(程式);
(5)              選中“從列表選擇例項”;
(6)              選中需要監視的程式,如Winword;
(7)              選中“從列表選擇計數器”,從列表框中選中需要監視的特性,如CPU佔用時間、實體記憶體、虛擬記憶體等;
(8)              設定完畢,點選“新增”按鈕,關閉視窗,回到圖(4)顯示視窗;
(9)              在圖(4)對話方塊中,切換至“日誌檔案”屬性頁,如圖(5)所示;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(5)日誌檔案屬性設定



(10)          在圖(5)中,將日誌型別設定為CSV格式,便於在Excel中匯入;
(11)          將日誌大小設定為最大限度,也可以根據需要預設定檔案記錄大小;
(12)          在圖(4)對話方塊中,切換至“計劃”屬性頁,如圖(6)所示;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(6)採集計劃定製



(13)          採用預設計劃,關閉設定對話方塊;
(14)          開始採集監視物件效能資料,如果需要停止採集,手工終止即可。
優點:可以設定取樣頻率,指定時長或者手工控制取樣時長不間斷地採集效能資料,並且
可以多種格式儲存資料,滿足不同的需求,便於事後分析。
2.2.2          效能採集資料分析
採集的資料被記錄到Execl檔案中。資料記錄如下:
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(7)採集資料記錄



(1)       開啟日誌檔案;
(2)       選中需要分析的資料(列);
(3)       點選工具條中的“圖表嚮導”,出現如下圖(8)所示對話方塊;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(8)圖表型別設定



(4)       選中“折線圖”中的第一個圖形,進入下一步;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(9)圖表型別設定



(5)       在圖(9)中,將資料區域設定為從第二行開始;
利用Windows效能計數器分析軟體產品的效能瓶頸 - jack_test - jack_test 的部落格


圖(10)圖表系列設定



(6)       完成設定後,以新表格方式插入分佈圖。
(7)       採用同樣的方式,可以繪出實體記憶體、虛擬記憶體的分佈情況。
2.3         採集物件和可採集的引數
效能計數器可監視的物件多達20種,每一種效能物件又包括若干個可供計數的效能引數滿。以最常用的監視物件――程式為例,其可供計數的效能引數多達27種,如程式佔用CPU的時間、控制程式碼數、每秒IO位元組數、每秒IO讀位元組數、每秒IO寫位元組數、虛擬記憶體、虛擬記憶體峰值、執行緒數目、實體記憶體、實體記憶體峰值等,能滿足大部分需求。
3          效果評估
取樣Windows效能計數器對程式的某些特性引數進行統計跟蹤,能很好的發現軟體的瓶頸和執行狀態,特別是我們比較關心的CPU佔用、記憶體使用情況等,具有較大的參考價值

相關文章