[發(fā)明專利]一種性能監(jiān)控單元多事件統(tǒng)計(jì)的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201410437648.5 | 申請(qǐng)日: | 2014-08-29 |
| 公開(公告)號(hào): | CN104216812B | 公開(公告)日: | 2017-04-05 |
| 發(fā)明(設(shè)計(jì))人: | 王輝 | 申請(qǐng)(專利權(quán))人: | 杭州華為數(shù)字技術(shù)有限公司 |
| 主分類號(hào): | G06F11/30 | 分類號(hào): | G06F11/30 |
| 代理公司: | 深圳市深佳知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙)44285 | 代理人: | 王仲凱 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 性能 監(jiān)控 單元 多事 統(tǒng)計(jì) 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種性能監(jiān)控單元多事件統(tǒng)計(jì)的方法和裝置。
背景技術(shù)
性能一直是衡量系統(tǒng)和程序好壞的重要標(biāo)準(zhǔn)。近年來伴隨著互聯(lián)網(wǎng)的快速發(fā)展,用戶數(shù)量激增,為了保證服務(wù)質(zhì)量,一個(gè)網(wǎng)站往往是由成百上千臺(tái)的服務(wù)器集群及運(yùn)行在其之上的分布式系統(tǒng)軟件組成,軟件性能愈發(fā)變得格外重要。一方面,由于系統(tǒng)龐大,軟件性能的些許提升,往往能節(jié)約大量的硬件成本;另一方面,通過對(duì)系統(tǒng)性能的監(jiān)控,可以做到負(fù)載均衡,保證業(yè)務(wù)的穩(wěn)定性。
在衡量系統(tǒng)和程序性能時(shí),中央處理器(Central?Processing?Unit,CPU)性能又是一個(gè)非常重要的指標(biāo),程序耗費(fèi)的CPU時(shí)間,執(zhí)行的指令數(shù),緩存訪問命中次數(shù),分支預(yù)測正確次數(shù)等CPU相關(guān)的性能參數(shù)可以較為直觀的反映出程序優(yōu)劣。Intel?CPU中自帶了性能監(jiān)控單元(Performance?Monitor?Unit,PMU),用于記錄這些事件發(fā)生的次數(shù)。
性能監(jiān)控單元由CPU中的一組寄存器組成,按照功能劃分為事件控制寄存器,事件計(jì)數(shù)寄存器,全局控制寄存器,全局溢出狀態(tài)寄存器和全局溢出位控制寄存器等。事件控制寄存器負(fù)責(zé)指定要記錄的事件(比如CPU時(shí)鐘周期數(shù),執(zhí)行指令數(shù)等),而事件計(jì)數(shù)寄存器則負(fù)責(zé)記錄由控制寄存器所指定事件的發(fā)生次數(shù),并可以在記錄達(dá)到設(shè)定的次數(shù)時(shí),發(fā)生溢出,產(chǎn)生一個(gè)性能監(jiān)控單元產(chǎn)生的中斷(Performance?Monitoring?Interrupt,PMI)。事件計(jì)數(shù)寄存器在同一時(shí)刻只能記錄一個(gè)性能事件。全局控制寄存器,全局溢出狀態(tài)寄存器和全局溢出位控制寄存器是為了輔助計(jì)數(shù),方便中斷處理。
事件控制寄存器和事件計(jì)數(shù)寄存器的數(shù)量是有限的,且同一時(shí)刻僅能記錄一個(gè)性能事件,而進(jìn)行性能調(diào)優(yōu)和系統(tǒng)性能監(jiān)控時(shí)經(jīng)常需要關(guān)注多個(gè)性能事件,比如常見的CPU非空閑時(shí)鐘周期數(shù)、執(zhí)行指令周期數(shù)、分支數(shù)、分支miss、緩存存取次數(shù)、緩存存取失敗次數(shù)等。所以在同時(shí)記錄多個(gè)事件時(shí),為了解決寄存器不足的問題,當(dāng)前通用的方法是,先選擇部分事件進(jìn)行監(jiān)控,當(dāng)達(dá)到系統(tǒng)的時(shí)鐘周期,觸發(fā)系統(tǒng)的時(shí)鐘中斷時(shí),讀取計(jì)數(shù)寄存器中的計(jì)數(shù)進(jìn)行保存,然后切換所記錄的事件,選擇剩余事件進(jìn)行監(jiān)控,如此循環(huán)切換,直至監(jiān)控程序終止。最后對(duì)各性能事件的計(jì)數(shù)結(jié)果求平均,獲取最終計(jì)數(shù)結(jié)果。
然而,在實(shí)際應(yīng)用中,采用系統(tǒng)的時(shí)鐘頻率作為事件切換機(jī)制的觸發(fā)周期,雖然可以解決由寄存器數(shù)量不足導(dǎo)致無法同時(shí)監(jiān)控多個(gè)事件的問題,但犧牲了計(jì)數(shù)精確性。例如,如圖1所示為執(zhí)行指令數(shù)隨系統(tǒng)時(shí)鐘周期變化的一個(gè)示意圖,其中系統(tǒng)的時(shí)鐘頻率為250Hz,即一個(gè)時(shí)鐘周期為4ms。假設(shè)要求同時(shí)記錄8個(gè)性能事件,但寄存器只有4個(gè),為了解決寄存器不足的問題,只能將所有事件分成兩批,一批在奇數(shù)次時(shí)鐘周期中計(jì)數(shù),一批在偶數(shù)次時(shí)鐘周期中計(jì)數(shù)。設(shè)執(zhí)行指令數(shù)為第一批監(jiān)控的事件,則分別在時(shí)鐘周期1、時(shí)鐘周期3、時(shí)鐘周期5等奇數(shù)時(shí)鐘周期中進(jìn)行計(jì)數(shù)。而通過圖1可以發(fā)現(xiàn)執(zhí)行指令數(shù)在時(shí)鐘周期1和時(shí)鐘周期3中較少,而時(shí)鐘周期2中較多,由于僅在時(shí)鐘周期1和時(shí)鐘周期3中統(tǒng)計(jì)了執(zhí)行指令數(shù),時(shí)鐘周期2中并沒有監(jiān)控,則前12ms中執(zhí)行指令數(shù)的平均值為:(時(shí)鐘周期1計(jì)數(shù)+時(shí)鐘周期3計(jì)數(shù))/時(shí)鐘周期大小(4ms)×2=(1000×4+1000×4)/(4×2)=1000次/ms。而實(shí)際數(shù)值應(yīng)為:(時(shí)鐘周期1計(jì)數(shù)+時(shí)鐘周期2計(jì)數(shù)+時(shí)鐘周期3計(jì)數(shù))/時(shí)鐘周期大小(4ms)×3=(1000×4+2000×4+1000×4)/(4×3)=1333.3次/ms。由此可見,采用這種事件切換機(jī)制存在一定誤差。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種性能監(jiān)控單元多事件統(tǒng)計(jì)的方法和裝置,用于在不修改系統(tǒng)時(shí)鐘頻率的前提下,動(dòng)態(tài)精確的調(diào)整事件切換的頻率,提高性能統(tǒng)計(jì)的準(zhǔn)確性。
本發(fā)明實(shí)施例第一方面提供了一種性能監(jiān)控單元多事件統(tǒng)計(jì)的方法,包括:
當(dāng)觸發(fā)性能監(jiān)控單元PMU中第一寄存器和第二寄存器計(jì)數(shù)后,監(jiān)測所述第一寄存器是否溢出,其中,所述第一寄存器用于記錄第一性能事件,所述第一寄存器對(duì)所述第一性能事件計(jì)數(shù)的數(shù)目達(dá)到設(shè)定值時(shí)溢出,所述第二寄存器用于記錄第二性能事件,所述第二性能事件包括多個(gè)性能事件,所述第一性能事件與所述第二性能事件相關(guān);
當(dāng)確定所述第一寄存器溢出時(shí),發(fā)起PMI中斷;
在所述PMI中斷中,保存PMU中各寄存器對(duì)各性能事件計(jì)數(shù)的時(shí)長和數(shù)目,按照預(yù)置事件切換順序,切換所述第二寄存器記錄的第二性能事件,重置所述第一寄存器和所述第二寄存器計(jì)數(shù)的數(shù)目,重新觸發(fā)所述第一寄存器和所述第二寄存器計(jì)數(shù),結(jié)束所述PMI中斷;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州華為數(shù)字技術(shù)有限公司,未經(jīng)杭州華為數(shù)字技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410437648.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 多級(jí)校內(nèi)監(jiān)控系統(tǒng)
- 多級(jí)校內(nèi)監(jiān)控系統(tǒng)
- 一種范圍廣、力度大的校內(nèi)監(jiān)控系統(tǒng)
- 一種監(jiān)控的方法及系統(tǒng)
- 設(shè)備的監(jiān)控方法、裝置、系統(tǒng)和空調(diào)
- 多級(jí)校內(nèi)監(jiān)控系統(tǒng)
- 設(shè)備監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 風(fēng)險(xiǎn)雷達(dá)預(yù)警的監(jiān)控方法及系統(tǒng)
- 區(qū)塊鏈網(wǎng)絡(luò)監(jiān)控系統(tǒng)、裝置及方法
- 基于機(jī)器視覺的車站客流安全智能監(jiān)控系統(tǒng)





