專利名稱:一種針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法和工具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Linux內(nèi)核性能測(cè)試技術(shù)領(lǐng)域,尤其涉及一種針對(duì)Linux進(jìn)程調(diào)度進(jìn)行性能測(cè)試的方法和工具。
背景技術(shù):
性能測(cè)試是軟件研發(fā)過(guò)程中必不可少的重要環(huán)節(jié),它能夠幫助軟件廠商識(shí)別在軟件研發(fā)過(guò)程中潛在的性能退化問(wèn)題和產(chǎn)品可能存在的性能缺陷。Linux操作系統(tǒng)作為一個(gè)龐大復(fù)雜的軟件系統(tǒng),不斷對(duì)其進(jìn)行性能測(cè)試是Linux操作系統(tǒng)廠商在產(chǎn)品發(fā)布前必須進(jìn)行的關(guān)鍵步驟。目前,業(yè)界對(duì)Linux操作系統(tǒng)開展性能測(cè)試是針對(duì)Linux內(nèi)核的五大子系統(tǒng)(進(jìn)程調(diào)度子系統(tǒng)、內(nèi)存管理子系統(tǒng)、虛擬文件子系統(tǒng)、進(jìn)程通信子系統(tǒng)和網(wǎng)絡(luò)接口子系統(tǒng))分別展開的。Linux進(jìn)程調(diào)度是Linux操作系統(tǒng)的核心,它的主要工作是在所有的可運(yùn)行進(jìn)程中選擇最合適的一個(gè)占用CPU運(yùn)行。Linux進(jìn)程調(diào)度性能的優(yōu)劣將直接影響到Linux操 作系統(tǒng)運(yùn)行的正確性和穩(wěn)定性。目前,業(yè)界普遍開展的Linux性能測(cè)試主要是針對(duì)Linux內(nèi)核的內(nèi)存管理子系統(tǒng)、虛擬文件子系統(tǒng)和網(wǎng)絡(luò)通信子系統(tǒng),而針對(duì)Linux進(jìn)程調(diào)度子系統(tǒng)進(jìn)行性能測(cè)試的方法和工具相對(duì)匱乏?,F(xiàn)有能夠支持Linux進(jìn)程調(diào)度性能測(cè)試的工具包括HackBench和ValonaMark0然而,使用上述兩種工具對(duì)Linux進(jìn)程調(diào)度性能進(jìn)行測(cè)試存在以下不足
一、上述工具僅關(guān)注了微觀基準(zhǔn)測(cè)試,忽略了宏觀基準(zhǔn)測(cè)試。微觀基準(zhǔn)測(cè)試是指對(duì)Linux內(nèi)核工作過(guò)程中的某個(gè)具體環(huán)節(jié)的性能進(jìn)行測(cè)試,對(duì)Linux進(jìn)程調(diào)度子系統(tǒng)來(lái)說(shuō)包括進(jìn)程創(chuàng)建速度、進(jìn)程調(diào)度切換速度等。宏觀基準(zhǔn)測(cè)試是從用戶使用角度出發(fā)(即宏觀角度)出發(fā)來(lái)評(píng)價(jià)Linux內(nèi)核的性能。顯然,要做到對(duì)Linux進(jìn)程調(diào)度性能進(jìn)行全面評(píng)測(cè),僅關(guān)注微觀基準(zhǔn)測(cè)試是不夠的。二、上述工具關(guān)注的性能指標(biāo)較少,且性能指標(biāo)的計(jì)算方法不夠精確。其中,HackBench和ValonaMark測(cè)量的性能指標(biāo)僅局限于周轉(zhuǎn)時(shí)間,且周轉(zhuǎn)時(shí)間的計(jì)算方法誤差較大(取軟件運(yùn)行一次的時(shí)間)。這是由于上述工具在計(jì)算性能指標(biāo)時(shí)沒有深入內(nèi)核,不能準(zhǔn)確獲取內(nèi)核工作的具體狀態(tài)。三、測(cè)試結(jié)果信息量少,很難對(duì)Linux內(nèi)核調(diào)優(yōu)提供幫助。隨著Linux操作系統(tǒng)應(yīng)用領(lǐng)域的日益廣泛,Linux操作系統(tǒng)廠商迫切需要一種針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法和工具能夠解決上述存在的問(wèn)題,提高Linux操作系統(tǒng)產(chǎn)品的質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明參考了性能測(cè)試方法學(xué)中的基準(zhǔn)測(cè)試、壓力測(cè)試和代碼性能分析方法,結(jié)合內(nèi)核插樁技術(shù)提出一種針對(duì)Linux進(jìn)程調(diào)度性能測(cè)試的方法并設(shè)計(jì)了相應(yīng)的工具,該方法和工具能夠幫助Linux研發(fā)和測(cè)試人員直觀評(píng)價(jià)Linux進(jìn)程調(diào)度性能,識(shí)別產(chǎn)品存在的潛在性能問(wèn)題,進(jìn)而幫助Linux操作系統(tǒng)研發(fā)人員不斷提升Linux進(jìn)程調(diào)度性能,以解決現(xiàn)有方法不能從用戶角度評(píng)價(jià)Linux進(jìn)程調(diào)度性能、性能指標(biāo)較少且計(jì)算精度差和測(cè)試結(jié)果信息難以輔助內(nèi)核調(diào)優(yōu)的問(wèn)題。為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是一種針對(duì)Linux進(jìn)程調(diào)度性能測(cè)試的方法,包含以下基準(zhǔn)測(cè)試步驟
步驟11:選取基準(zhǔn)測(cè)試的維度和測(cè)試項(xiàng);其中,基準(zhǔn)測(cè)試的維度包括宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試;宏觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度公平性測(cè)試、調(diào)度效率測(cè)試和調(diào)度交互性測(cè)試;微觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度上下文切換延遲測(cè)試和調(diào)度喚醒延遲測(cè)試;
步驟12 :編寫并配置測(cè)試驅(qū)動(dòng)模塊,用于接受用戶通過(guò)命令行傳入的執(zhí)行參數(shù)來(lái)控制所述基準(zhǔn)測(cè)試中對(duì)Linux進(jìn)程調(diào)度施加的負(fù)載;
步驟13 :編寫并配置性能指標(biāo)監(jiān)控模塊,用于獲取和計(jì)算所述基準(zhǔn)測(cè)試中關(guān)注的基準(zhǔn)測(cè)試性能指標(biāo),不同的測(cè)試項(xiàng)對(duì)應(yīng)不同的基準(zhǔn)測(cè)試性能指標(biāo);
步驟14 :運(yùn)行測(cè)試驅(qū)動(dòng)模塊驅(qū)動(dòng)基準(zhǔn)測(cè)試執(zhí)行,同時(shí)運(yùn)行基準(zhǔn)測(cè)試性能指標(biāo)監(jiān)控模塊,對(duì)測(cè)試過(guò)程中Linux進(jìn)程調(diào)度運(yùn)行信息進(jìn)行采集和處理,并實(shí)時(shí)記錄Linux進(jìn)程調(diào)度狀態(tài)用于計(jì)算和更新基準(zhǔn)測(cè)試性能指標(biāo);
步驟15 :基準(zhǔn)測(cè)試運(yùn)行結(jié)束后,輸出測(cè)試結(jié)果、測(cè)試執(zhí)行過(guò)程信息和用戶選擇的基準(zhǔn)測(cè)試性能指標(biāo)信息;
其中,所述基準(zhǔn)測(cè)試性能指標(biāo)包括周轉(zhuǎn)時(shí)間、最大周轉(zhuǎn)時(shí)間、平均周轉(zhuǎn)時(shí)間、周轉(zhuǎn)時(shí)間的標(biāo)準(zhǔn)差、帶權(quán)周轉(zhuǎn)時(shí)間、平均帶權(quán)周轉(zhuǎn)時(shí)間、最大帶權(quán)周轉(zhuǎn)時(shí)間、等待時(shí)間、最大等待時(shí)間、平均等待時(shí)間、喚醒延遲、平均喚醒延遲、最大喚醒延遲、最大上下文切換延遲、上下文切換延遲和平均上下文切換延遲。優(yōu)選的,該方法還包括以下步驟通過(guò)所述性能指標(biāo)監(jiān)控模塊對(duì)Linux內(nèi)核中預(yù)先定義的與進(jìn)程調(diào)度相關(guān)靜態(tài)插樁點(diǎn)事件進(jìn)行插樁,在所述性能指標(biāo)監(jiān)控模塊運(yùn)行過(guò)程中動(dòng)態(tài)跟蹤測(cè)試進(jìn)程的上下文切換事件和調(diào)度喚醒事件,通過(guò)判斷測(cè)試進(jìn)程當(dāng)前狀態(tài)來(lái)獲取和計(jì)算基準(zhǔn)測(cè)試中選取的基準(zhǔn)測(cè)試性能指標(biāo)。優(yōu)選的,該方法包含以下代碼性能分析步驟
步驟21 :選取分析對(duì)象,該分析對(duì)象為用戶根據(jù)需要選擇的進(jìn)行代碼性能分析的函數(shù)模塊;
步驟22 :編寫并配置代碼性能分析監(jiān)控模塊,用于對(duì)分析對(duì)象進(jìn)行插樁;
步驟23 :編寫并配置代碼性能分析測(cè)試驅(qū)動(dòng)模塊,用于給Linux進(jìn)程調(diào)度增加負(fù)載來(lái)幫助快速識(shí)別熱點(diǎn)代碼;
步驟24 :運(yùn)行測(cè)試,運(yùn)行代碼性能分析測(cè)試驅(qū)動(dòng)模塊驅(qū)動(dòng)Linux進(jìn)程調(diào)度工作的過(guò)
程;
步驟25 :使用代碼性能分析監(jiān)控模塊對(duì)選取的分析對(duì)象的執(zhí)行情況進(jìn)行數(shù)據(jù)采集和分析,需要采集和分析的數(shù)據(jù)包括模塊的執(zhí)行次數(shù)、模塊的執(zhí)行時(shí)間、模塊每行代碼的執(zhí)行時(shí)間;
步驟26 :通過(guò)分析函數(shù)模塊執(zhí)行時(shí)間的基礎(chǔ)上識(shí)別耗費(fèi)較多CPU時(shí)間的代碼段。同時(shí),結(jié)合本發(fā)明提出的方法,本發(fā)明設(shè)計(jì)實(shí)現(xiàn)了一種針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具,包括人機(jī)交互界面模塊、測(cè)試驅(qū)動(dòng)模塊和內(nèi)核監(jiān)控模塊;
人機(jī)交互界面模塊,用于完成與用戶進(jìn)行交互;測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊;其中,Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊,用于在Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載;Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊,用于在Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載;
內(nèi)核監(jiān)控模塊,包括基準(zhǔn)測(cè)試性能指標(biāo)監(jiān)控模塊,基準(zhǔn)測(cè)試性能指標(biāo)監(jiān)控模塊用于在Linux進(jìn)程調(diào)度基準(zhǔn)測(cè)試過(guò)程中收集和計(jì)算選取的性能指標(biāo)信息。優(yōu)選的,所述Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程調(diào)度公平性測(cè)試驅(qū)動(dòng)模塊、Linux進(jìn)程調(diào)度高效性測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度交互性測(cè)試驅(qū)動(dòng)模塊;所述Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程上下文切換延遲測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度喚醒延遲測(cè)試驅(qū)動(dòng)模塊。優(yōu)選的,所述性能指標(biāo)監(jiān)控模塊能對(duì)Linux內(nèi)核中預(yù)先定義的與進(jìn)程調(diào)度相關(guān)靜態(tài)插樁點(diǎn)事件進(jìn)行插樁,在所述性能指標(biāo)監(jiān)控模塊運(yùn)行過(guò)程中動(dòng)態(tài)跟蹤測(cè)試進(jìn)程的上下文切換事件和調(diào)度喚醒事件,通過(guò)判斷測(cè)試進(jìn)程當(dāng)前狀 態(tài)來(lái)獲取和計(jì)算基準(zhǔn)測(cè)試中選取的基準(zhǔn)測(cè)試性能指標(biāo)。優(yōu)選的,所述內(nèi)核監(jiān)控模塊還包括代碼性能分析監(jiān)控模塊,代碼性能分析監(jiān)控模塊用于在代碼性能分析過(guò)程中對(duì)Linux內(nèi)核運(yùn)行狀態(tài)、系統(tǒng)調(diào)用和內(nèi)核函數(shù)執(zhí)行情況信息進(jìn)行收集;所述測(cè)試驅(qū)動(dòng)模塊中還包含代碼性能分析測(cè)試驅(qū)動(dòng)模塊,用于在代碼性能分析實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載。本發(fā)明的有益技術(shù)效果是使用本發(fā)明提出的Linux進(jìn)程調(diào)度性能測(cè)試方法能夠有效解決目如在Linux進(jìn)程調(diào)度性能測(cè)試中存在的由于不能深入內(nèi)核而造成的性能指標(biāo)計(jì)算精度差、關(guān)注的性能指標(biāo)匱乏等問(wèn)題。同時(shí),本發(fā)明提出的方法中關(guān)注了 Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試和Linux進(jìn)程調(diào)度代碼性能分析,能夠幫助Linux研發(fā)人員更加直觀的評(píng)價(jià)Linux進(jìn)程調(diào)度器性能。本發(fā)明設(shè)計(jì)的工具為本發(fā)明提出的方法提供了工具支持,有效解決了目前Linux進(jìn)程調(diào)度性能測(cè)試工具匱乏的問(wèn)題。
圖I為本發(fā)明的針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法中基準(zhǔn)測(cè)試的實(shí)施流程圖。圖2為本發(fā)明的針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法中代碼性能分析的實(shí)施流程圖。圖3為本發(fā)明的針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具的基本框架圖。圖4為使用本發(fā)明的針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具進(jìn)行Linux進(jìn)程調(diào)度基準(zhǔn)測(cè)試的順序圖。
具體實(shí)施例方式為使本發(fā)明的目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
是對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明可用于幫助Linux操作系統(tǒng)研發(fā)人員評(píng)價(jià)Linux進(jìn)程調(diào)度性能和輔助Linux內(nèi)核進(jìn)程調(diào)度性能優(yōu)化。例如=Linux操作系統(tǒng)研發(fā)人員在產(chǎn)品研發(fā)過(guò)程中識(shí)別由于內(nèi)核代碼修改可能造成的Linux進(jìn)程調(diào)度性能倒退的問(wèn)題。
為了能夠幫助Linux操作系統(tǒng)研發(fā)人員評(píng)價(jià)和調(diào)優(yōu)Linux進(jìn)程調(diào)度性能,本發(fā)明提出的針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法包含兩種重要手段,即基準(zhǔn)測(cè)試和代碼性能分析?;鶞?zhǔn)測(cè)試的目的是幫助Linux研發(fā)人員直觀評(píng)價(jià)Linux進(jìn)程調(diào)度性能。本發(fā)明提出的基準(zhǔn)測(cè)試方法包括宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試。宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試的關(guān)注點(diǎn)不同。宏觀基準(zhǔn)測(cè)試是從用戶應(yīng)用角度評(píng)價(jià)Linux進(jìn)程調(diào)度性能,包含進(jìn)程調(diào)度公平性測(cè)試、進(jìn)程調(diào)度效率測(cè)試和進(jìn)程調(diào)度交互性測(cè)試;微觀基準(zhǔn)測(cè)試關(guān)注Linux進(jìn)程調(diào)度過(guò)程中的延遲,包含進(jìn)程上下文切換延遲測(cè)試和進(jìn)程調(diào)度喚醒延遲測(cè)試。參考圖I,基準(zhǔn)測(cè)試包含以下幾個(gè)步驟
步驟11:選取基準(zhǔn)測(cè)試的維度和測(cè)試項(xiàng)根據(jù)測(cè)試目標(biāo)選取基準(zhǔn)測(cè)試的維度,即采用宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試;進(jìn)一步,根據(jù)宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試關(guān)注點(diǎn)的不同 選取測(cè)試項(xiàng),宏觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度公平性測(cè)試、調(diào)度效率測(cè)試和調(diào)度交互性測(cè)試,微觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度上下文切換延遲測(cè)試和調(diào)度喚醒延遲測(cè)試;
步驟12 :編寫并配置測(cè)試驅(qū)動(dòng)模塊,本發(fā)明編寫的測(cè)試驅(qū)動(dòng)模塊是使用C語(yǔ)言編寫的可執(zhí)行程序,能夠接受用戶通過(guò)命令行傳入的執(zhí)行參數(shù)來(lái)控制基準(zhǔn)測(cè)試中對(duì)Linux進(jìn)程調(diào)度施加的負(fù)載;
步驟13 :編寫并配置性能指標(biāo)監(jiān)控模塊,該模塊用于獲取和計(jì)算Linux進(jìn)程調(diào)度基準(zhǔn)測(cè)試中關(guān)注的基準(zhǔn)測(cè)試性能指標(biāo),本發(fā)明關(guān)注的各種基準(zhǔn)測(cè)試性能指標(biāo)如表I所示不同測(cè)試項(xiàng)對(duì)應(yīng)不同的基準(zhǔn)測(cè)試性能指標(biāo)。性能指標(biāo)監(jiān)控模塊由預(yù)先編寫的腳本組成,本發(fā)明選取了內(nèi)核調(diào)試工具(具體為SystemTap工具,SystemTap工具是一種被廣泛應(yīng)用與Linux內(nèi)核調(diào)試的輔助工具)輔助監(jiān)控內(nèi)核狀態(tài),SystemTap支持用戶使用其特有的腳本語(yǔ)言來(lái)配置工具,因此,性能指標(biāo)監(jiān)控模塊中包含的為SystemTap腳本。為了便于內(nèi)核調(diào)試,在Linux內(nèi)核調(diào)試工具中都預(yù)先定義了很多與內(nèi)核運(yùn)行狀態(tài)密切相關(guān)的事件,本發(fā)明配置性能指標(biāo)監(jiān)控模塊是通過(guò)編寫腳本對(duì)Linux內(nèi)核中與進(jìn)程調(diào)度相關(guān)的關(guān)鍵事件進(jìn)行插樁,并通過(guò)編寫腳本描述針對(duì)不同事件發(fā)生時(shí)的處理邏輯完成的。即本發(fā)明在Linux進(jìn)程調(diào)度性能測(cè)試中引入了內(nèi)核插樁技術(shù),使用Linux內(nèi)核調(diào)試工具對(duì)Linux內(nèi)核源碼進(jìn)行動(dòng)態(tài)插樁,通過(guò)該模塊對(duì)Linux內(nèi)核中預(yù)先定義的與進(jìn)程調(diào)度相關(guān)靜態(tài)插樁點(diǎn)事件進(jìn)行插樁,在該模塊運(yùn)行過(guò)程中動(dòng)態(tài)跟蹤測(cè)試進(jìn)程的上下文切換事件和調(diào)度喚醒事件,通過(guò)判斷測(cè)試進(jìn)程當(dāng)前狀態(tài)來(lái)獲取和計(jì)算基準(zhǔn)測(cè)試中定義的性能指標(biāo);
表I :基準(zhǔn)測(cè)試性能指標(biāo)
性能指標(biāo)I描述
周轉(zhuǎn)時(shí)間_測(cè)試進(jìn)程由提交運(yùn)行到運(yùn)行完成的時(shí)間間隔
最大周轉(zhuǎn)時(shí)間所有測(cè)試進(jìn)程周轉(zhuǎn)時(shí)間的最大值_
平均周轉(zhuǎn)時(shí)間所有測(cè)試進(jìn)程周轉(zhuǎn)時(shí)間的算術(shù)平均值_
周轉(zhuǎn)時(shí)間的標(biāo)準(zhǔn)差所有測(cè)試進(jìn)程周轉(zhuǎn)時(shí)間的標(biāo)準(zhǔn)差_
帶權(quán)周轉(zhuǎn)時(shí)間_進(jìn)程的周轉(zhuǎn)時(shí)間和進(jìn)程服務(wù)時(shí)間的比值_
平均帶權(quán)周轉(zhuǎn)時(shí)間所有測(cè)試進(jìn)程帶權(quán)周轉(zhuǎn)時(shí)間的算術(shù)平均值
最大帶權(quán)周轉(zhuǎn)時(shí)間所有測(cè)試進(jìn)程帶權(quán)周轉(zhuǎn)時(shí)間的最大值_
等待時(shí)間_測(cè)試進(jìn)程在就緒隊(duì)列中的等待時(shí)間_
最大等待時(shí)間所有測(cè)試進(jìn)程等待時(shí)間的最大值_
平均等待時(shí)間所有測(cè)試進(jìn)程等待時(shí)間的平均值_
喚醒延遲I測(cè)試進(jìn)程被喚醒到獲取CPU執(zhí)行的等待時(shí)間 —
權(quán)利要求
1.一種針對(duì)Linux進(jìn)程調(diào)度性能測(cè)試的方法,其特征在于包含以下基準(zhǔn)測(cè)試步驟 步驟11 :選取基準(zhǔn)測(cè)試的維度和測(cè)試項(xiàng);其中,基準(zhǔn)測(cè)試的維度包括宏觀基準(zhǔn)測(cè)試和微觀基準(zhǔn)測(cè)試;宏觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度公平性測(cè)試、調(diào)度效率測(cè)試和調(diào)度交互性測(cè)試;微觀基準(zhǔn)測(cè)試的測(cè)試項(xiàng)包括調(diào)度上下文切換延遲測(cè)試和調(diào)度喚醒延遲測(cè)試; 步驟12 :編寫并配置測(cè)試驅(qū)動(dòng)模塊,用于接受用戶通過(guò)命令行傳入的執(zhí)行參數(shù)來(lái)控制所述基準(zhǔn)測(cè)試中對(duì)Linux進(jìn)程調(diào)度施加的負(fù)載; 步驟13 :編寫并配置性能指標(biāo)監(jiān)控模塊,用于獲取和計(jì)算所述基準(zhǔn)測(cè)試中關(guān)注的基準(zhǔn)測(cè)試性能指標(biāo),不同的測(cè)試項(xiàng)對(duì)應(yīng)不同的基準(zhǔn)測(cè)試性能指標(biāo); 步驟14 :運(yùn)行測(cè)試驅(qū)動(dòng)模塊驅(qū)動(dòng)基準(zhǔn)測(cè)試執(zhí)行,同時(shí)運(yùn)行基準(zhǔn)測(cè)試性能指標(biāo)監(jiān)控模塊,對(duì)測(cè)試過(guò)程中Linux進(jìn)程調(diào)度運(yùn)行信息進(jìn)行采集和處理,并實(shí)時(shí)記錄Linux進(jìn)程調(diào)度狀態(tài)用于計(jì)算和更新基準(zhǔn)測(cè)試性能指標(biāo); 步驟15 :基準(zhǔn)測(cè)試運(yùn)行結(jié)束后,輸出測(cè)試結(jié)果、測(cè)試執(zhí)行過(guò)程信息和用戶選擇的基準(zhǔn)測(cè)試性能指標(biāo)信息; 其中,所述基準(zhǔn)測(cè)試性能指標(biāo)包括周轉(zhuǎn)時(shí)間、最大周轉(zhuǎn)時(shí)間、平均周轉(zhuǎn)時(shí)間、周轉(zhuǎn)時(shí)間的標(biāo)準(zhǔn)差、帶權(quán)周轉(zhuǎn)時(shí)間、平均帶權(quán)周轉(zhuǎn)時(shí)間、最大帶權(quán)周轉(zhuǎn)時(shí)間、等待時(shí)間、最大等待時(shí)間、平均等待時(shí)間、喚醒延遲、平均喚醒延遲、最大喚醒延遲、最大上下文切換延遲、上下文切換延遲和平均上下文切換延遲。
2.如權(quán)利要求I所述的針對(duì)Linux進(jìn)程調(diào)度性能測(cè)試的方法,其特征在于該方法還包括以下步驟通過(guò)所述性能指標(biāo)監(jiān)控模塊對(duì)Linux內(nèi)核中預(yù)先定義的與進(jìn)程調(diào)度相關(guān)靜態(tài)插樁點(diǎn)事件進(jìn)行插樁,在所述性能指標(biāo)監(jiān)控模塊運(yùn)行過(guò)程中動(dòng)態(tài)跟蹤測(cè)試進(jìn)程的上下文切換事件和調(diào)度喚醒事件,通過(guò)判斷測(cè)試進(jìn)程當(dāng)前狀態(tài)來(lái)獲取和計(jì)算基準(zhǔn)測(cè)試中選取的基準(zhǔn)測(cè)試性能指標(biāo)。
3.如權(quán)利要求I或2所述的針對(duì)Linux進(jìn)程調(diào)度性能測(cè)試的方法,其特征在于該方法包含以下代碼性能分析步驟 步驟21 :選取分析對(duì)象,該分析對(duì)象為用戶根據(jù)需要選擇的進(jìn)行代碼性能分析的函數(shù)模塊; 步驟22 :編寫并配置代碼性能分析監(jiān)控模塊,用于對(duì)分析對(duì)象進(jìn)行插樁; 步驟23 :編寫并配置代碼性能分析測(cè)試驅(qū)動(dòng)模塊,用于給Linux進(jìn)程調(diào)度增加負(fù)載來(lái)幫助快速識(shí)別熱點(diǎn)代碼; 步驟24 :運(yùn)行測(cè)試,運(yùn)行代碼性能分析測(cè)試驅(qū)動(dòng)模塊驅(qū)動(dòng)Linux進(jìn)程調(diào)度工作的過(guò)程; 步驟25 :使用代碼性能分析監(jiān)控模塊對(duì)選取的分析對(duì)象的執(zhí)行情況進(jìn)行數(shù)據(jù)采集和分析,需要采集和分析的數(shù)據(jù)包括模塊的執(zhí)行次數(shù)、模塊的執(zhí)行時(shí)間、模塊每行代碼的執(zhí)行時(shí)間; 步驟26 :通過(guò)分析函數(shù)模塊執(zhí)行時(shí)間的基礎(chǔ)上識(shí)別耗費(fèi)較多CPU時(shí)間的代碼段。
4.一種針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具,包括人機(jī)交互界面模塊、測(cè)試驅(qū)動(dòng)模塊和內(nèi)核監(jiān)控模塊; 人機(jī)交互界面模塊,用于完成與用戶進(jìn)行交互; 測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊;其中,Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊,用于在Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載;Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊,用于在Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載; 內(nèi)核監(jiān)控模塊,包括性能指標(biāo)監(jiān)控模塊,性能指標(biāo)監(jiān)控模塊用于在Linux進(jìn)程調(diào)度基準(zhǔn)測(cè)試過(guò)程中收集和計(jì)算選取的性能指標(biāo)信息。
5.如權(quán)利要求4所述針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具,其特征在于 所述Linux進(jìn)程調(diào)度宏觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程調(diào)度公平性測(cè)試驅(qū)動(dòng)模塊、Linux進(jìn)程調(diào)度高效性測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度交互性測(cè)試驅(qū)動(dòng)模塊; 所述Linux進(jìn)程調(diào)度微觀基準(zhǔn)測(cè)試驅(qū)動(dòng)模塊包括=Linux進(jìn)程上下文切換延遲測(cè)試驅(qū)動(dòng)模塊和Linux進(jìn)程調(diào)度喚醒延遲測(cè)試驅(qū)動(dòng)模塊。
6.如權(quán)利要求4所述針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具,其特征在于 所述性能指標(biāo)監(jiān)控模塊能對(duì)Linux內(nèi)核中預(yù)先定義的與進(jìn)程調(diào)度相關(guān)靜態(tài)插樁點(diǎn)事件進(jìn)行插樁,在所述性能監(jiān)控模塊運(yùn)行過(guò)程中動(dòng)態(tài)跟蹤測(cè)試進(jìn)程的上下文切換事件和調(diào)度喚醒事件,通過(guò)判斷測(cè)試進(jìn)程當(dāng)前狀態(tài)來(lái)獲取和計(jì)算基準(zhǔn)測(cè)試中選取的基準(zhǔn)測(cè)試性能指標(biāo)。
7.如權(quán)利要求4、5或6所述針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試工具,其特征在于 所述內(nèi)核監(jiān)控模塊還包括代碼性能分析監(jiān)控模塊,代碼性能分析監(jiān)控模塊用于在代碼性能分析過(guò)程中對(duì)Linux內(nèi)核運(yùn)行狀態(tài)、系統(tǒng)調(diào)用和內(nèi)核函數(shù)執(zhí)行情況信息進(jìn)行收集;所述測(cè)試驅(qū)動(dòng)模塊中還包含代碼性能分析測(cè)試驅(qū)動(dòng)模塊,用于在代碼性能分析實(shí)施過(guò)程中為L(zhǎng)inux進(jìn)程調(diào)度器提供工作負(fù)載。
全文摘要
本發(fā)明實(shí)現(xiàn)了一種針對(duì)Linux進(jìn)程調(diào)度的性能測(cè)試方法和工具。該方法包含以下基準(zhǔn)測(cè)試步驟步驟11選取基準(zhǔn)測(cè)試的維度和測(cè)試項(xiàng);步驟12編寫并配置測(cè)試驅(qū)動(dòng)模塊;步驟13編寫并配置性能指標(biāo)監(jiān)控模塊;步驟14運(yùn)行測(cè)試驅(qū)動(dòng)模塊驅(qū)動(dòng)基準(zhǔn)測(cè)試執(zhí)行,同時(shí)運(yùn)行基準(zhǔn)測(cè)試性能指標(biāo)監(jiān)控模塊,對(duì)測(cè)試過(guò)程中Linux進(jìn)程調(diào)度運(yùn)行信息進(jìn)行采集和處理,并實(shí)時(shí)記錄Linux進(jìn)程調(diào)度狀態(tài)用于計(jì)算和更新基準(zhǔn)測(cè)試性能指標(biāo);步驟15輸出測(cè)試結(jié)果、測(cè)試執(zhí)行過(guò)程信息和用戶選擇的基準(zhǔn)測(cè)試性能指標(biāo)信息。本方法能夠應(yīng)用于Linux操作系統(tǒng)研發(fā)和測(cè)試人員評(píng)價(jià)Linux進(jìn)程調(diào)度性能并輔助Linux進(jìn)程調(diào)度性能調(diào)優(yōu),有效提高Linux操作系統(tǒng)運(yùn)行的正確性和穩(wěn)定性。
文檔編號(hào)G06F9/44GK102722434SQ20121016483
公開日2012年10月10日 申請(qǐng)日期2012年5月24日 優(yōu)先權(quán)日2012年5月24日
發(fā)明者蘭雨晴, 劉曉輝 申請(qǐng)人:蘭雨晴