本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種檢測慢盤的方法及裝置。
背景技術(shù):
存儲系統(tǒng)中的硬盤在使用過程中,由于硬盤的磁性退化、壞道或振動等其他環(huán)境和機械的問題,會導(dǎo)致硬盤在進行讀寫操作,即輸入輸出(英文:input/output,縮寫:I/O)操作時的延時增大,這種進行I/O操作時延時增大的硬盤稱為慢盤。
通常,為了降低慢盤對存儲系統(tǒng)的讀寫性能的影響,一般在存儲系統(tǒng)運行過程中,可以通過實時監(jiān)控存儲系統(tǒng)中的各個硬盤進行I/O操作時的延時,檢測這些硬盤是否為慢盤。具體的,以一個硬盤為例,統(tǒng)計該硬盤在每個第一周期內(nèi)進行I/O操作的平均延時,并將該平均延時與預(yù)設(shè)的時間閾值進行比較,若該平均延時大于或等于時間閾值,則記為一次閾值事件;以及統(tǒng)計該硬盤在每個第二周期(第二周期大于第一周期)內(nèi)出現(xiàn)閾值事件的次數(shù),并將該次數(shù)與預(yù)設(shè)的次數(shù)閾值進行比較,若該次數(shù)大于或等于預(yù)設(shè)的次數(shù)閾值,則可確定該硬盤為慢盤。
然而,為了避免硬盤某次讀寫較大數(shù)據(jù)時導(dǎo)致平均延時增大,出現(xiàn)檢測錯誤的現(xiàn)象,通常將時間閾值設(shè)置的比較大,因此可能會使得檢測慢盤的準(zhǔn)確度下降。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種檢測慢盤的方法及裝置,能夠提高檢測慢盤的準(zhǔn)確度。
第一方面,本發(fā)明實施例提供一種檢測慢盤的方法,所述方法包括:
在檢測周期內(nèi),周期性地進行采樣,在每次采樣周期內(nèi),執(zhí)行如下方法:
獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值,其中,所述第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,所述延時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值;
確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間;其中,所述第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個;
若所述第一區(qū)間是已滿區(qū)間,則計算所述第一延時與區(qū)間平均延時的比值,得到第一比值;其中,所述已滿區(qū)間是在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,所述區(qū)間平均延時為所述第一區(qū)間中的多個第二延時的平均值,所述多個第二延時一一對應(yīng)于第一多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值;
在每次檢測周期結(jié)束后,下一個檢測周期開始前,執(zhí)行如下方法:
若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算第二多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,所述第二多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;
若所述第一比值平均值大于或等于第三閾值,則確定所述硬盤為慢盤。
結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,在每次采樣周期內(nèi),所述確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,所述方法還包括:
記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到所述第一區(qū)間的個數(shù)為第一個數(shù),其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值;
判斷所述第一個數(shù)是否達到所述第一閾值;
若所述第一個數(shù)達到所述第一閾值,則確定所述第一區(qū)間是已滿區(qū)間;
若所述第一個數(shù)沒有達到所述第一閾值,則確定所述第一區(qū)間不是已 滿區(qū)間,并進入下次采樣周期采樣。
結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的利用率;或者,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的讀寫速度。
結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第二種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述第一閾值為N,所述第一區(qū)間對應(yīng)N個第二延時,N為大于或等于1的整數(shù),所述計算所述第一延時與區(qū)間平均延時的比值之前,所述方法還包括:
計算所述N個第二延時中的所述多個第二延時的平均值,得到所述區(qū)間平均延時。
結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,
所述N個第二延時按照采樣順序依次排列,所述多個第二延時為所述N個第二延時中的前M個第二延時,M為整數(shù),N/3≤M≤2N/3,且N/3和2N/3均取整數(shù)。
結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,M=N/2,
所述多個第二延時為所述N個第二延時中的前N/2個第二延時,且N/2取整數(shù)。
結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,
所述多個第二延時的平均值為所述多個第二延時的算術(shù)平均值或者所述多個第二延時的幾何平均值;
所述多個第一比值的平均值為所述多個第一比值的算術(shù)平均值或者所述多個第一比值的幾何平均值。
結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第一方面的第七種可能的實現(xiàn)方式中, 所述方法應(yīng)用于多個硬盤的場景,針對第一硬盤執(zhí)行,所述第一硬盤為所述多個硬盤中的其中一個硬盤;所述方法還包括:
獲取與所述多個硬盤中除所述第一硬盤外的其他硬盤一一對應(yīng)的多個第一比值平均值,其中,所述其他硬盤中的每個硬盤對應(yīng)的第一比值平均值的獲取方法與所述第一硬盤對應(yīng)的第一比值平均值的獲取方法相同;
當(dāng)與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于所述第三閾值時,所述方法還包括:
計算與所述多個硬盤一一對應(yīng)的多個第一比值平均值的平均值,得到第一平均值;
計算與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值與所述第一平均值的比值,得到多個第二比值;
確定所述多個第二比值中,與大于或等于第四閾值的第二比值對應(yīng)的硬盤為慢盤。
第二方面,本發(fā)明實施例提供一種檢測慢盤的裝置,所述裝置包括:
采樣單元,用于在檢測周期內(nèi),周期性地進行采樣,且在每次采樣周期內(nèi),完成如下過程:
獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值,其中,所述第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,所述延時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值;
確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間;其中,所述第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個;
若所述第一區(qū)間是已滿區(qū)間,則計算所述第一延時與區(qū)間平均延時的比值,得到第一比值;其中,所述已滿區(qū)間是在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,所述區(qū)間平均延時為所述第一區(qū)間中的多個第二延時的平均值,所述多個第二延時一一對應(yīng)于第一多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值;
檢測單元,用于在每次檢測周期結(jié)束后,下一個檢測周期開始前,完成如下過程:
若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算所述采樣單元在第二多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,所述第二多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;以及若所述第一比值平均值大于或等于第三閾值,則確定所述硬盤為慢盤。
結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,
所述采樣單元,還用于在每次采樣周期內(nèi),確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到所述第一區(qū)間的個數(shù)為第一個數(shù);并判斷所述第一個數(shù)是否達到所述第一閾值;以及若所述第一個數(shù)達到所述第一閾值,則確定所述第一區(qū)間是已滿區(qū)間;若所述第一個數(shù)沒有達到所述第一閾值,則確定所述第一區(qū)間不是已滿區(qū)間,并進入下次采樣周期采樣,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的利用率;或者,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的讀寫速度。
結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式至第二種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述第一閾值為N,所述第一區(qū)間對應(yīng)N個第二延時,N為大于或等于1的整數(shù),
所述采樣單元,還用于在計算所述第一延時與區(qū)間平均延時的比值之前,計算所述N個第二延時中的所述多個第二延時的平均值,得到所述區(qū)間平均延時。
結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,
所述N個第二延時按照采樣順序依次排列,所述多個第二延時為所述N個第二延時中的前M個第二延時,M為整數(shù),N/3≤M≤2N/3,且N/3和 2N/3均取整數(shù)。
結(jié)合第二方面的第四種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,M=N/2,
所述多個第二延時為所述N個第二延時中的前N/2個第二延時,且N/2取整數(shù)。
結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式至第五種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,
所述采樣單元計算的所述多個第二延時的平均值為所述多個第二延時的算術(shù)平均值或者所述多個第二延時的幾何平均值;
所述檢測單元計算的所述多個第一比值的平均值為所述多個第一比值的算術(shù)平均值或者所述多個第一比值的幾何平均值。
結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式至第六種可能的實現(xiàn)方式中的任一種實現(xiàn)方式,在第二方面的第七種可能的實現(xiàn)方式中,所述裝置應(yīng)用于多個硬盤的場景,所述裝置針對第一硬盤進行檢測,所述第一硬盤為所述多個硬盤中的其中一個硬盤;
所述檢測單元,還用于獲取與所述多個硬盤中除所述第一硬盤外的其他硬盤一一對應(yīng)的多個第一比值平均值;并當(dāng)與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于所述第三閾值時,計算與所述多個硬盤一一對應(yīng)的多個第一比值平均值的平均值,得到第一平均值;且計算與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值與所述第一平均值的比值,得到多個第二比值;以及確定所述多個第二比值中,與大于或等于第四閾值的第二比值對應(yīng)的硬盤為慢盤,其中,所述其他硬盤中的每個硬盤對應(yīng)的第一比值平均值的獲取方法與所述第一硬盤對應(yīng)的第一比值平均值的獲取方法相同。
本發(fā)明實施例提供一種檢測慢盤的方法及裝置,該方法包括在檢測周期內(nèi),周期性地進行采樣,且在每次采樣周期內(nèi):獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值,其中,第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,所述時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值;確定第一延時相關(guān)指標(biāo)值所屬的第一區(qū) 間;其中,第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個;若第一區(qū)間是已滿區(qū)間,則計算第一延時與區(qū)間平均延時的比值,得到第一比值;其中,已滿區(qū)間是在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,區(qū)間平均延時為第一區(qū)間中的多個第二延時的平均值,多個第二延時一一對應(yīng)于第一多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。在每次檢測周期結(jié)束后,下一個檢測周期開始前:若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算第二多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,第二多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;若第一比值平均值大于或等于第三閾值,則確定硬盤為慢盤。
基于上述技術(shù)方案,本發(fā)明實施例提供的檢測慢盤的方法中,首先,由于延時相關(guān)指標(biāo)值會隨延時的變化而發(fā)生相應(yīng)的變化,即延時與延時相關(guān)指標(biāo)值密切相關(guān),因此通過將最大延時相關(guān)指標(biāo)值劃分區(qū)間,并在每個區(qū)間內(nèi)采樣與屬于該區(qū)間的延時相關(guān)指標(biāo)值對應(yīng)的延時,可以保證一個區(qū)間內(nèi)采樣的延時有統(tǒng)一的衡量標(biāo)準(zhǔn),從而提高檢測慢盤的準(zhǔn)確度。其次,在第一區(qū)間是已滿區(qū)間(即在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)達到第一閾值)后才計算第一比值(在沒滿之前的采樣過程可認為是學(xué)習(xí)過程),可以保證在第一區(qū)間獲取足夠多個延時相關(guān)指標(biāo)值(即在第一區(qū)間采樣足夠多次)后再計算第一比值,從而能夠提高檢測慢盤的準(zhǔn)確度。再次,本發(fā)明實施例在每次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值時再計算第一比值平均值,可以保證在大部分區(qū)間已經(jīng)結(jié)束學(xué)習(xí)過程,即大部分區(qū)間已經(jīng)采樣了足夠多次后再計算第一比值平均值,也能夠提高檢測慢盤的準(zhǔn)確度。此外,由于本發(fā)明實施例計算的第一比值平均值為由多個第一比值得到的一個比例平均值,其并不是實際的延時數(shù)值,因此該第一比值平均值可以準(zhǔn)確地體現(xiàn)硬盤的性能變化趨勢,通過設(shè)置第三閾值,以及將第一比值平均值與第三閾值進行比較,可以在硬 盤性能發(fā)生變化時準(zhǔn)確地檢測出硬盤是慢盤,從而進一步提高檢測慢盤的準(zhǔn)確度。
附圖說明
圖1為本發(fā)明實施例提供的云存儲系統(tǒng)的架構(gòu)示意圖;
圖2為本發(fā)明實施例提供的一種檢測慢盤的方法流程圖一;
圖3為本發(fā)明實施例提供的一種檢測慢盤的方法流程圖二;
圖4為本發(fā)明實施例提供的一種檢測慢盤的方法流程圖三;
圖5為本發(fā)明實施例提供的一種檢測慢盤的方法流程圖四;
圖6為本發(fā)明實施例提供的一種檢測慢盤的裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施例提供的一種檢測慢盤的裝置的硬件示意圖。
具體實施方式
本發(fā)明實施例提供的檢測慢盤的方法及裝置可以應(yīng)用于硬盤檢測場景中。具體的,本發(fā)明實施例提供的檢測慢盤的方法及裝置可以應(yīng)用于云存儲系統(tǒng)中的硬盤檢測場景中。
云存儲系統(tǒng)是在云計算(英文:cloud computing)系統(tǒng)的概念上延伸和發(fā)展出來的一個新的概念,是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。當(dāng)云計算系統(tǒng)運算和處理的核心是大量數(shù)據(jù)的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設(shè)備,例如硬盤,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲系統(tǒng)是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。
如圖1所示,為本發(fā)明實施例提供的一種云存儲系統(tǒng)的架構(gòu)示意圖。由于云存儲系統(tǒng)中包括大量的存儲設(shè)備,例如圖1中的各種各樣的硬盤,因此為了提高云存儲系統(tǒng)的性能(例如存儲性能和管理性能),通常需要對這些存儲設(shè)備進行維護。以存儲設(shè)備為各種各樣的硬盤為例,由于這些硬盤在使用過程中,可能由于某些硬盤的磁性退化、壞道或振動等其他環(huán)境和機械問題,而導(dǎo)致某些硬盤在進行讀寫操作時的延時較大,因此為了 提高云存儲系統(tǒng)的存儲效率,需要及時對這些硬盤進行檢測,以檢測出進行讀寫操作時延時較大的硬盤,即慢盤。當(dāng)檢測出慢盤后,可以通過從云存儲系統(tǒng)中隔離(例如從軟件上刪除或者從硬件上自動彈出等)慢盤,從而提高云存儲系統(tǒng)的存儲效率。
本發(fā)明實施例提供的硬盤可以為固態(tài)硬盤(英文:solid state drive,縮寫:SSD);也可以為硬盤驅(qū)動器(英文:Hard Disk Drive,縮寫:HDD);還可以為混合式硬盤(英文:hybrid hard drive,縮寫:HHD)等其他類型的硬盤,具體的本發(fā)明不作限定。其中,SSD采用閃存顆粒來存儲;HDD采用磁性碟片來存儲;HHD是把磁性硬盤和閃存集成到一起的一種硬盤。
下面結(jié)合附圖對本發(fā)明實施例提供的檢測慢盤的方法及裝置進行詳細地說明。其中,本發(fā)明實施例提供的檢測慢盤的方法的執(zhí)行主體可以為檢測慢盤的裝置,該檢測慢盤的裝置可以為云存儲系統(tǒng)中的一個檢測節(jié)點,該檢測節(jié)點可以為一個獨立的計算機節(jié)點,也可以為一個集成在計算機節(jié)點中的功能單元等,本發(fā)明不作具體限定。以下實施例中,為了更清楚、完整地說明本發(fā)明實施例提供的檢測慢盤的方法,該方法的執(zhí)行主體均以檢測節(jié)點為例進行示例性的說明。
實施例一
在云存儲系統(tǒng)中,由于本發(fā)明實施例提供的檢測慢盤的方法對每個硬盤的檢測過程均類似,因此本實施例以一個硬盤為例對本發(fā)明實施例提供的檢測慢盤的方法進行示例性的說明。
如圖2所示,本發(fā)明實施例提供一種檢測慢盤的方法,該方法可以包括:
S10、在檢測周期內(nèi),檢測節(jié)點周期性地進行采樣,在每次采樣周期內(nèi),檢測節(jié)點執(zhí)行S100-S102。
S100、檢測節(jié)點獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值,其中,第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,延時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值。
本發(fā)明實施例中,第一延時相關(guān)指標(biāo)值為本次采樣周期內(nèi)獲取到的延時相關(guān)指標(biāo)。
其中,上述第一延時/延時統(tǒng)計的是一段時間內(nèi)硬盤讀寫數(shù)據(jù)的平均延時。由于該平均延時為本領(lǐng)域技術(shù)人員所公知的技術(shù),因此此處不再詳述。
本發(fā)明實施例中,“第一延時”以及“第一延時相關(guān)指標(biāo)值”中的前綴“第一”僅表示為一個特定的延時或者延時相關(guān)指標(biāo)值,在后續(xù)其他步驟中出現(xiàn)的“第一”、“第二”等前綴均表示類似的含義。
其中,上述延時相關(guān)指標(biāo)值是指跟硬盤讀寫數(shù)據(jù)時的延時(即上述的平均延時)相關(guān)的一個指標(biāo)的值,即該指標(biāo)的值跟延時之間存在具有一定規(guī)律的對應(yīng)關(guān)系。具體的,延時相關(guān)指標(biāo)值可以為硬盤讀寫數(shù)據(jù)的“利用率”或者硬盤讀寫數(shù)據(jù)的“讀寫速度”等跟硬盤讀寫數(shù)據(jù)的延時之間存在一定對應(yīng)關(guān)系的指標(biāo)。例如,延時大時,對應(yīng)的利用率會高(或者,對應(yīng)的讀寫速度會低)。上述延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“利用率”和硬盤讀寫數(shù)據(jù)的“讀寫速度”僅是為了對本發(fā)明實施例的檢測慢盤的方法進行示例性的說明,其并不對本發(fā)明實施例形成任何限定,即本發(fā)明實施例也不限定延時相關(guān)指標(biāo)值可以取其他能夠隨延時變化而發(fā)生相應(yīng)變化的值。
同時,為了后續(xù)方便說明,本發(fā)明實施例中,并不對“利用率”與“利用率的值”或者其他類似的情況(如“指標(biāo)”與“指標(biāo)的值”)進行嚴格區(qū)分,本領(lǐng)域技術(shù)人員可以理解他們表示的是相同的意思。例如,如果出現(xiàn)“利用率”為XX時,本領(lǐng)域技術(shù)人員可以理解,實際上也可以表示“利用率的值”為XX。
本發(fā)明實施例中,第一延時相關(guān)指標(biāo)值可以是硬盤讀寫數(shù)據(jù)的“利用率”的一個值(如20%、40%之類的值),該值越高,第一延時也越大;或者,第一延時相關(guān)指標(biāo)值可以是硬盤讀寫數(shù)據(jù)的“讀寫速度”的一個值(如20M/s、50M/s之類的值)時,該值越高,說明系統(tǒng)很繁忙,第一延時也越大。
本發(fā)明實施例中,第一延時以及第一延時相關(guān)指標(biāo)值可以通過多種路徑獲取。示例性的,可以基于操作系統(tǒng)自帶的一些工具獲取,例如,基于Linux操作系統(tǒng)的iostat工具,可以通過iostat工具獲取一段時間內(nèi)硬盤 的利用率以及硬盤讀寫數(shù)據(jù)的平均延時等數(shù)據(jù);或者,也可以自定義開發(fā)一些工具來獲取。如何通過系統(tǒng)自帶的工具以及如何自己開發(fā)用于獲取這些數(shù)據(jù)的工具都屬于本領(lǐng)域技術(shù)人員所公知的技術(shù),這里不再贅述。
S101、檢測節(jié)點確定第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間,其中,第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個。
本發(fā)明實施例提供的檢測慢盤的方法中,可以由軟件開發(fā)人員預(yù)先獲取硬盤讀寫數(shù)據(jù)的最大延時相關(guān)指標(biāo)值,并將硬盤讀寫數(shù)據(jù)的最大延時相關(guān)指標(biāo)值進行劃分,以得到多個區(qū)間,以及將這多個區(qū)間寫入檢測慢盤時執(zhí)行的軟件程序中。
由于延時相關(guān)指標(biāo)值不同,其獲取的方法可能不同,因此下面分別以上述延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“利用率”和硬盤讀寫數(shù)據(jù)的“讀寫速度”為例,對獲取硬盤讀寫數(shù)據(jù)的最大延時相關(guān)指標(biāo)值的方法進行示例性的說明。
當(dāng)上述延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“利用率”時,一般情況下,軟件開發(fā)人員可直接認為最大延時相關(guān)指標(biāo)值為在理論上硬盤讀寫數(shù)據(jù)的“利用率”的最大值,例如,軟件開發(fā)人員可直接認為最大延時相關(guān)指標(biāo)值為100%。極少數(shù)情況下,軟件開發(fā)人員可以通過iostat工具獲取最大延時相關(guān)指標(biāo)值,這種情況下,最大延時相關(guān)指標(biāo)值是由iostat工具在硬盤讀寫數(shù)據(jù)時根據(jù)硬盤的介質(zhì)設(shè)置的,例如,iostat工具根據(jù)硬盤的介質(zhì)不同,可以將最大延時相關(guān)指標(biāo)值設(shè)置為理論上硬盤讀寫數(shù)據(jù)的“利用率”的最大值的整數(shù)倍(如200%之類的值)。
當(dāng)上述延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“讀寫速度”時,最大延時相關(guān)指標(biāo)值可以有以下幾種獲取方法。第一種獲取方法是軟件開發(fā)人員根據(jù)開發(fā)經(jīng)驗獲取,比如軟件開發(fā)人員在了解應(yīng)用系統(tǒng)的設(shè)計及應(yīng)用進行I/O操作的方式后,可以估算出一個可能的值作為最大延時相關(guān)指標(biāo)值。第二種獲取方法是軟件開發(fā)人員在無開發(fā)經(jīng)驗的情況下,可以在硬盤上運行一個讀寫測試,并根據(jù)該讀寫測試獲取最大延時相關(guān)指標(biāo)值。第三種獲取方法是軟件開發(fā)人員可以直接使用硬盤的標(biāo)稱值作為最大延時相關(guān)指標(biāo)值,該標(biāo)稱值通常由硬盤廠商提供,例如,在購買硬盤時,可以看到硬盤的參 數(shù)中有“最大持續(xù)數(shù)據(jù)傳輸率”(如210M/s之類的值),軟件開發(fā)人員可以將該“最大持續(xù)數(shù)據(jù)傳輸率”作為最大延時相關(guān)指標(biāo)值。上述三種獲取方法中第一種獲取方法獲取的最大延時相關(guān)指標(biāo)值的精確程度最高,第二種方法次之,第三種方法最低。
示例性的,若延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“利用率”,則可以將硬盤讀寫數(shù)據(jù)的最大利用率進行劃分;例如,假設(shè)硬盤讀寫數(shù)據(jù)的最大利用率為100%,則可以按照以20%為間隔對0-100%進行劃分,即可以劃分為[0,20%)、[20%,40%)、[40%,60%)、[60%,80%)和[80%,100%]等五個區(qū)間。若延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“讀寫速度”,則可以將硬盤讀寫數(shù)據(jù)的最大讀寫速度(實際中最大讀寫速度可以為單位時間內(nèi)最多讀寫的數(shù)據(jù)量)進行劃分;例如,假設(shè)硬盤讀寫數(shù)據(jù)的最大讀寫速度為50M/s,則可以按照以10M/s為間隔對0-50M/s進行劃分,即可以劃分為[0,10M/s)、[10M/s,20M/s)、[20M/s,30M/s)、[30M/s,40M/s)和[40M/s,50M/s]等五個區(qū)間。
需要說明的是,上述對硬盤讀寫數(shù)據(jù)的最大延時相關(guān)指標(biāo)值進行劃分的描述僅是示例性的列舉,本發(fā)明包括但不限于上述描述的劃分方法。其中,上述將硬盤讀寫數(shù)據(jù)的最大延時相關(guān)指標(biāo)值劃分為若干個區(qū)間的區(qū)間數(shù)量可以根據(jù)實際檢測慢盤的過程中,獲取的最大延時相關(guān)指標(biāo)值的精準(zhǔn)程度、第一閾值(用于限定需獲取的落入每個區(qū)間的延時相關(guān)指標(biāo)值的最大個數(shù))的大小以及對檢測慢盤的準(zhǔn)確度的要求等進行設(shè)定,本發(fā)明不作具體限定。一方面,當(dāng)獲取的最大延時相關(guān)指標(biāo)值的精準(zhǔn)程度比較低時,劃分的區(qū)間數(shù)量可以多一些,以提高檢測慢盤的準(zhǔn)確度;反之劃分的區(qū)間數(shù)量可以少一些。一方面,為了提高檢測慢盤的準(zhǔn)確度,第一閾值可以設(shè)置的大一些,但是如果劃分的區(qū)間數(shù)量太多的話可能會導(dǎo)致每個區(qū)間達到第一閾值的時間變長,從而檢測慢盤的靈敏度會降低,所以考慮這個因素可能劃分的區(qū)間數(shù)量要少一些。另一方面,當(dāng)對檢測慢盤的準(zhǔn)確度的要求較高時,劃分的區(qū)間數(shù)量可以多一些??傊?,可以基于上述三個方面,在劃分區(qū)間時進行均衡,以劃分合適數(shù)量的區(qū)間,從而在檢測慢盤的準(zhǔn)確度和靈敏度之間達到均衡。
檢測節(jié)點獲取到硬盤讀寫數(shù)據(jù)的第一延時相關(guān)指標(biāo)值后,檢測節(jié)點需在預(yù)先劃分的多個區(qū)間中,確定出第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間。以第一延時相關(guān)指標(biāo)值為硬盤讀寫數(shù)據(jù)的“讀寫速度”的一個值,例如“第一讀寫速度”為例,若“第一讀寫速度”為33M/s,則第一延時相關(guān)指標(biāo)值為33M/s,即第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間為[30M/s,40M/s)這個區(qū)間。
進一步地,檢測節(jié)點在確定本次獲取的第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,檢測節(jié)點需要記錄本次采樣后,在所有采樣周期(包括本次采樣周期及前面所有的采樣周期)內(nèi)獲取到的所有延時相關(guān)指標(biāo)值(包括本次采樣之前獲取的所有延時相關(guān)指標(biāo)值和本次獲取的第一延時相關(guān)指標(biāo)值)落入到第一區(qū)間的個數(shù),這里記為“第一個數(shù)”。本發(fā)明實施例中,在每個采樣周期內(nèi),只獲取一個延時相關(guān)指標(biāo)值,其中,有一些延時相關(guān)指標(biāo)值會落入到第一區(qū)間,有一些不會落入,此時,第一個數(shù)即表示所有落入到第一區(qū)間的延時相關(guān)指標(biāo)值的個數(shù)。例如,假設(shè)所有的采樣周期共有100個,通過這些采樣周期共獲取100個延時相關(guān)指標(biāo)值,其中,有80個延時相關(guān)指標(biāo)值落入到了第一區(qū)間,則第一個數(shù)為80。
可以比較容易地看到,第一個數(shù)是一個會不斷累加的參數(shù),因此,上述記錄第一個數(shù)的過程也可以看成是“更新第一個數(shù)”的過程。實際應(yīng)用中,為了記錄第一個數(shù),可以有很多種方法。例如,一種常用的方法是可以通過設(shè)置一個變量,每當(dāng)采樣周期內(nèi)獲取的延時指標(biāo)值落入到第一區(qū)間時,就對這個變量進行累加(例如,加1),可以用程序語言表示為:first_number=first_number+1,其中,first_number代表“第一個數(shù)”。
例如,假設(shè)在本次采樣前,檢測節(jié)點已經(jīng)記錄的落入第一區(qū)間的延時相關(guān)指標(biāo)值的個數(shù)為630,在本次采樣中,檢測節(jié)點確定本次采樣的第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間后,檢測節(jié)點“更新第一個數(shù)”,即在630基礎(chǔ)上加1,得到更新后的第一個數(shù)為631。
可以理解的是,本發(fā)明實施例提供的檢測慢盤的方法中,檢測節(jié)點在每個區(qū)間對硬盤的檢測過程均類似,因此,本實施例及以下實施例均以一個區(qū)間,即第一區(qū)間為例進行示例性的說明,對于其他區(qū)間的檢測過程與 第一區(qū)間的檢測過程均類似,本發(fā)明實施例不再贅述。
S102、若第一區(qū)間是已滿區(qū)間,則檢測節(jié)點計算第一延時與區(qū)間平均延時的比值,得到第一比值。
其中,本發(fā)明實施例中的已滿區(qū)間是指在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,通過S101可知,如果某個采樣周期內(nèi)獲取的延時相關(guān)指標(biāo)值落入到第一區(qū)間,則該延時相關(guān)指標(biāo)值的個數(shù)就會被記錄,依次類推,檢測節(jié)點可以記錄所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該第一區(qū)間的個數(shù),即第一個數(shù),后續(xù)檢測節(jié)點就可以根據(jù)這個第一個數(shù)來判斷獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)是否已經(jīng)達到第一閾值。
其中,區(qū)間平均延時為第一區(qū)間中的多個第二延時的平均值,多個第二延時一一對應(yīng)于多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,這些采樣周期都為獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)達到第一閾值,即第一區(qū)間已滿之前的采樣周期。具體的,由于檢測周期內(nèi)會有多個采樣周期,每個采樣周期檢測節(jié)點都會執(zhí)行S100,因此,在第一區(qū)間已滿之前,每個采樣周期內(nèi),檢測節(jié)點都會采集到與這個周期對應(yīng)的延時相關(guān)指標(biāo)值(這里可以稱第二延時相關(guān)指標(biāo)值)以及硬盤讀寫數(shù)據(jù)的延時(這里可以稱為第二延時)。
其中,上述第二延時統(tǒng)計的是一段時間內(nèi)硬盤讀寫數(shù)據(jù)的平均延時。由于該平均延時為本領(lǐng)域技術(shù)人員所公知的技術(shù),因此此處不再詳述。
可選的,本發(fā)明實施例中的第一閾值可以根據(jù)實際檢測需求進行設(shè)置。例如,可以根據(jù)對硬盤的檢測準(zhǔn)確度的要求進行設(shè)置??梢岳斫獾氖牵瑢τ脖P的檢測準(zhǔn)確度的要求越高(需采樣的數(shù)據(jù)越多),第一閾值就設(shè)置的越大;對硬盤的檢測準(zhǔn)確度的要求越低(需采樣的數(shù)據(jù)越少),第一閾值就設(shè)置的越小。具體可以根據(jù)實際使用場景及其他檢測需求進行適應(yīng)性地調(diào)整,本發(fā)明不作限定。
舉例來說,假設(shè)上述第一閾值為1000,即第一區(qū)間需采樣1000次,則在第一區(qū)間已滿前,檢測節(jié)點需分別在1000個采樣周期內(nèi)采樣1000次,即獲取1000個第二延時相關(guān)指標(biāo)值和1000個第二延時。上述多個 第二延時可以為該1000個第二延時中的多個第二延時,例如多個第二延時可以為該1000個第二延時,也可以為該1000個第二延時中的部分第二延時。
上述區(qū)間平均延時為上述多個第二延時的平均值。例如,若上述多個第二延時為上述獲取的1000個第二延時,則區(qū)間平均延時為這1000個第二延時的平均值;若上述多個第二延時為上述獲取的1000個第二延時中的部分第二延時,則區(qū)間平均延時為該部分第二延時的平均值。具體的,多個第二延時的選取可根據(jù)實際檢測需求進行選取,本發(fā)明不作限定。
可選的,上述多個第二延時的平均值可以多個第二延時的算術(shù)平均值,也可以為多個第二延時的幾何平均值,本發(fā)明不作具體限定。其中,多個第二延時的算術(shù)平均值可以為不加權(quán)算術(shù)平均值或加權(quán)算術(shù)平均值;多個第二延時的幾何平均值可以為不加權(quán)幾何平均值或加權(quán)幾何平均值。
例如,以不加權(quán)算術(shù)平均值和不加權(quán)幾何平均值為例,假設(shè)需計算5個第二延時的平均值,5個第二延時的平均值分別為10秒、11秒、12秒、12秒和10秒,則5個第二延時的算術(shù)平均值=(10+11+12+12+10)/5=11(秒);5個第二延時的幾何(秒)。
本領(lǐng)域技術(shù)人員可以理解,上述5個第二延時僅是為了說明算術(shù)平均值和幾何平均值的計算方法進行的示意性的舉例,其并不對本發(fā)明實施例形成任何限定。實際應(yīng)用過程中,多個第二延時選取的通常都比較多,例如在上述1000個第二延時中,可以選取500個第二延時或800個第二延時等。
在采樣周期內(nèi),若已經(jīng)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)已經(jīng)達到第一閾值,即第一區(qū)間為已滿區(qū)間,則檢測節(jié)點可計算本次采樣周期內(nèi)采樣到的第一延時與區(qū)間平均延時的比值,得到一個第一比值。
可以理解的是,本發(fā)明實施例中,在檢測周期內(nèi),在本次采樣周期后,當(dāng)該采樣周期內(nèi)采樣到的硬盤讀寫數(shù)據(jù)的第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間為已滿區(qū)間(即在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該第一區(qū)間的個數(shù)已經(jīng)達到第一閾值)時,檢測節(jié)點需計算本次采樣 到的硬盤讀寫數(shù)據(jù)的第一延時與區(qū)間平均延時的比值,得到第一比值。
進一步地,由于一個檢測周期包含多個采樣周期,因此在本次采樣周期后,若本次檢測周期還未結(jié)束,則檢測節(jié)點需返回S100繼續(xù)執(zhí)行。
本發(fā)明實施例提供的檢測慢盤的方法,在每個檢測周期內(nèi),檢測節(jié)點周期性地進行采樣,并在每個采樣周期內(nèi)執(zhí)行上述S100-S102,直至該檢測周期結(jié)束。
S11、在每次檢測周期結(jié)束后,下一個檢測周期開始前,檢測節(jié)點執(zhí)行S110-S111。
S110、若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則檢測節(jié)點計算多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,本步驟中的多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期。
需要說明的是,本步驟中的出現(xiàn)的“多個采樣周期”與介紹步驟102時出現(xiàn)的幾處“多個采樣周期”的意思并不相同,本領(lǐng)域技術(shù)人員可以根據(jù)上下文清楚地知道在各個步驟中“多個采樣周期”的準(zhǔn)確含義,因此,為了說明方便,這里并不嚴格用“第一”、“第二”之類的術(shù)語進行限定。同理,也不對后續(xù)出現(xiàn)的“多個采樣周期”進行限定區(qū)分,本領(lǐng)域技術(shù)人員可以結(jié)合上下文清楚地確定后續(xù)出現(xiàn)的“多個采樣周期”的含義。
本發(fā)明實施例中,一個檢測周期內(nèi)可能存在多個區(qū)間都屬于已滿區(qū)間的情況,這樣,在該檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值中會有一部分落入到各個已滿區(qū)間,另外一部分落入到各個未滿區(qū)間。在該檢測周期結(jié)束后,下一個檢測周期開始前,檢測節(jié)點需要判斷在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)是否大于或等于第二閾值。并在該個數(shù)大于或等于第二閾值時,再計算多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值。其中,多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期。該個數(shù)大于或等于第二閾值意味著大部分區(qū)間學(xué)習(xí)過程已經(jīng)結(jié)束,即大部分區(qū)間已經(jīng)為已滿區(qū)間,且獲取到的延時相關(guān) 指標(biāo)值的個數(shù)已經(jīng)足夠多,這個時候再計算第一比值平均值可以保證檢測慢盤的準(zhǔn)確度較高。
假設(shè)總共有6個區(qū)間,在上一次檢測周期完后,已滿區(qū)間有3個,分別為區(qū)間A、區(qū)間B和區(qū)間C;未滿區(qū)間有3個,分別為區(qū)間D、區(qū)間E和區(qū)間F。本次檢測周期內(nèi)獲取到的延時相關(guān)指標(biāo)值的個數(shù)為30個,其中:
落入?yún)^(qū)間A的延時相關(guān)指標(biāo)值的個數(shù)為5個,
落入?yún)^(qū)間B的延時相關(guān)指標(biāo)值的個數(shù)為8個,
落入?yún)^(qū)間C的延時相關(guān)指標(biāo)值的個數(shù)為6個,
落入?yún)^(qū)間D的延時相關(guān)指標(biāo)值的個數(shù)為5個,
落入?yún)^(qū)間E的延時相關(guān)指標(biāo)值的個數(shù)為4個,
落入?yún)^(qū)間F的延時相關(guān)指標(biāo)值的個數(shù)為2個,則:
落入各個已滿區(qū)間的延時相關(guān)指標(biāo)值的個數(shù)=落入?yún)^(qū)間A的延時相關(guān)指標(biāo)值的個數(shù)+落入?yún)^(qū)間B的延時相關(guān)指標(biāo)值的個數(shù)+落入?yún)^(qū)間C的延時相關(guān)指標(biāo)值的個數(shù)=5+8+6=19。
可選的,上述第二閾值可以為根據(jù)實際檢測需求預(yù)先設(shè)定的,本發(fā)明不作具體限定。
第二閾值可以用于限定每次檢測周期結(jié)束后獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù),第二閾值越大,表示需采樣的采樣數(shù)據(jù)越多,采樣結(jié)果就越收斂,相應(yīng)的,利用這些采樣結(jié)果檢測慢盤的準(zhǔn)確度也就越高,但由于需要采樣的數(shù)據(jù)多,因此,需要的時間也多,靈敏度(反映檢測時間快慢)也相對較低;相反,第二閾值越小,表示需采樣的采樣數(shù)據(jù)越少,這樣準(zhǔn)確度就低一點,但所需的時間少,靈敏度相對就更高。
優(yōu)選的,為了在檢測慢盤的準(zhǔn)確度和靈敏度之間取得一個更好的綜合收益,可以將上述第二閾值設(shè)定為一個檢測周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值的總個數(shù)(即一個檢測周期內(nèi)采樣的總采樣次數(shù))的二分之一。例如,若一個檢測周期是5分鐘,一個采樣周期是10秒鐘,即每10秒鐘采樣一次,一次采樣獲取一個延時相關(guān)指標(biāo)值,則該檢測周期內(nèi)獲取到的所 有延時相關(guān)指標(biāo)值的總個數(shù)為30個,如此,可以將第二閾值設(shè)置為30的二分之一,即15。
示例性的,上述例子中,在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)為19,其大于第二閾值15,則檢測節(jié)點可以計算第一比值平均值。
本發(fā)明實施例中,檢測節(jié)點在每個采樣周期都采樣一次,即獲取一個延時相關(guān)指標(biāo)值,并且在該采樣周期內(nèi),若本次采樣周期采樣到的第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間為已滿區(qū)間,則需計算本次采樣到的第一延時與區(qū)間平均延時的比值,即第一比值。可以理解,對于未滿區(qū)間,檢測節(jié)點不會計算第一比值。而對于已滿區(qū)間,若獲取一個落入該已滿區(qū)間的延時相關(guān)指標(biāo)值(即采樣一次),則就在獲取該延時相關(guān)指標(biāo)值的采樣周期內(nèi)計算一個第一比值。
在上述例子中,本次檢測周期內(nèi),若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到區(qū)間A的個數(shù)為5,則在獲取到落入?yún)^(qū)間A的5個延時相關(guān)指標(biāo)值的5個采樣周期內(nèi)分別計算出5個第一比值;
相應(yīng)的,若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到區(qū)間B的個數(shù)為8,則在獲取到落入?yún)^(qū)間B的8個延時相關(guān)指標(biāo)值的8個采樣周期內(nèi)分別計算出8個第一比值;
若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入?yún)^(qū)間C的個數(shù)6,則在獲取到落入?yún)^(qū)間C的6個延時相關(guān)指標(biāo)值的6個采樣周期內(nèi)分別計算出6個第一比值。
上述在多個采樣周期內(nèi)計算的多個第一比值分別為:上述計算的5個第一比值、8個第一比值以及6個第一比值,即總共19個第一比值。檢測節(jié)點通過計算這19個第一比值的平均值,得到第一比值平均值。
可選的,多個第一比值的平均值可以為多個第一比值的算術(shù)平均值,也可以為多個第一比值的幾何平均值,本發(fā)明不作具體限定。其中,多個第一比值的算術(shù)平均值可以為不加權(quán)算術(shù)平均值或加權(quán)算術(shù)平均值;多個第一比值的幾何平均值可以為不加權(quán)幾何平均值或加權(quán)幾何平均值。
對于多個第一比值的算術(shù)平均值的計算方法具體可以參見上述多個第二延時的算術(shù)平均值的計算方法;且多個第一比值的幾何平均值的計算方法具體可以參見上述多個第二延時的幾何平均值的計算方法,此處不再贅述。
S111、若第一比值平均值大于或等于第三閾值,則檢測節(jié)點確定硬盤為慢盤。
當(dāng)檢測節(jié)點計算出的第一比值平均值大于或等于第三閾值的時候,檢測節(jié)點可確定被檢測的硬盤為慢盤。
其中,上述第三閾值可以根據(jù)實際檢測需求進行設(shè)定,本發(fā)明不作具體限定。示例性的,若要求檢測慢盤的準(zhǔn)確度較高,則可以將第三閾值設(shè)置的較大一些,這樣可能會使得檢測節(jié)點在比較多的檢測周期才能檢測出慢盤,因此檢測慢盤的準(zhǔn)確度較高;但是由于進行檢測的檢測周期比較多,因此檢測慢盤的靈敏度較低。若要求檢測慢盤的靈敏度較高,則可以將第三閾值設(shè)置的較小一些,這樣可能會使得檢測節(jié)點在比較少的檢測周期內(nèi)就能檢測出慢盤,因此檢測慢盤的靈敏度較高;但是由于進行檢測的檢測周期比較少,因此檢測慢盤的準(zhǔn)確度較低。
進一步地,檢測節(jié)點確定被檢測的硬盤為慢盤后,檢測節(jié)點可將檢測結(jié)果通過打印日志、告警或者界面展示的方式告知相關(guān)的處理模塊,從而該處理模塊可以對該硬盤進行隔離,例如,處理模塊可以從軟件上將該硬盤從云存儲系統(tǒng)中刪除,或者從硬件上將該硬盤自動彈出。
本發(fā)明實施例提供的檢測慢盤的方法,檢測節(jié)點通過在檢測周期內(nèi),周期性地進行采樣,且在每次采樣周期內(nèi)獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值;并確定第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間;以及若第一區(qū)間是已滿區(qū)間,則計算第一延時與區(qū)間平均延時的比值,得到第一比值;檢測節(jié)點在每次檢測周期結(jié)束后,下一個檢測周期開始前,若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;以及 若第一比值平均值大于或等于第三閾值,則確定硬盤為慢盤。
基于上述技術(shù)方案,本發(fā)明實施例提供的檢測慢盤的方法中,首先,由于延時相關(guān)指標(biāo)值會隨延時的變化而發(fā)生相應(yīng)的變化,即延時與延時相關(guān)指標(biāo)值密切相關(guān),因此通過將最大延時相關(guān)指標(biāo)值劃分區(qū)間,并在每個區(qū)間內(nèi)采樣與屬于該區(qū)間的延時相關(guān)指標(biāo)值對應(yīng)的延時,可以保證一個區(qū)間內(nèi)采樣的延時有統(tǒng)一的衡量標(biāo)準(zhǔn),從而提高檢測慢盤的準(zhǔn)確度。其次,在第一區(qū)間是已滿區(qū)間(即在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)達到第一閾值)后才計算第一比值(在沒滿之前的采樣過程可認為是學(xué)習(xí)過程),可以保證在第一區(qū)間獲取足夠多個延時相關(guān)指標(biāo)值(即在第一區(qū)間采樣足夠多次)后再計算第一比值,從而能夠提高檢測慢盤的準(zhǔn)確度。再次,本發(fā)明實施例在每次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值時再計算第一比值平均值,可以保證在大部分區(qū)間已經(jīng)結(jié)束學(xué)習(xí)過程,即大部分區(qū)間已經(jīng)采樣了足夠多次后再計算第一比值平均值,也能夠提高檢測慢盤的準(zhǔn)確度。此外,由于本發(fā)明實施例計算的第一比值平均值為由多個第一比值得到的一個比例平均值,其并不是實際的延時數(shù)值,因此該第一比值平均值可以準(zhǔn)確地體現(xiàn)硬盤的性能變化趨勢,通過設(shè)置第三閾值,以及將第一比值平均值與第三閾值進行比較,可以在硬盤性能發(fā)生變化時準(zhǔn)確地檢測出硬盤是慢盤,從而進一步提高檢測慢盤的準(zhǔn)確度。
實施例二
基于上述實施例一,本發(fā)明實施例提供了一種檢測慢盤的方法。
可選的,結(jié)合圖2,如圖3所示,本發(fā)明實施例提供的檢測慢盤的方法中,對于上述S10,在每次采樣周期內(nèi),檢測節(jié)點仍然執(zhí)行S103-S105,或者執(zhí)行S103-S104和S106。具體的,在S101,即檢測節(jié)點確定第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,本發(fā)明實施例提供的檢測慢盤的方法還可以包括:
S103、檢測節(jié)點記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所 有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)為第一個數(shù),其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
本發(fā)明實施例中,對于檢測節(jié)點記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到所述第一區(qū)間的個數(shù),第一個數(shù)的具體描述和舉例可以參見上述實施例的S101中的相關(guān)描述和舉例,此處不再贅述。
S104、檢測節(jié)點判斷第一個數(shù)是否達到第一閾值。
由于第一閾值用于限定需獲取的落入每個區(qū)間的延時相關(guān)指標(biāo)值的最大個數(shù)(即各個區(qū)間的學(xué)習(xí)過程中需采樣的延時相關(guān)指標(biāo)值的個數(shù)),因此檢測節(jié)點可在每次采樣后,通過記錄在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù),并將該第一個數(shù)和第一閾值對比,判斷第一區(qū)間的學(xué)習(xí)過程是否結(jié)束,即第一區(qū)間的采樣數(shù)據(jù)是否已經(jīng)足夠多。
S105、若第一個數(shù)達到第一閾值,則檢測節(jié)點確定第一區(qū)間是已滿區(qū)間。
S106、若第一個數(shù)沒有達到第一閾值,則檢測節(jié)點確定第一區(qū)間不是已滿區(qū)間,并進入下次采樣周期采樣。
如果檢測節(jié)點記錄的第一個數(shù)已經(jīng)達到第一閾值,則檢測節(jié)點確定第一區(qū)間是已滿區(qū)間;相反,若檢測節(jié)點記錄的第一個數(shù)還沒有達到第一閾值,則檢測節(jié)點確定第一區(qū)間不是已滿區(qū)間,且檢測節(jié)點進入下次采樣周期采樣。例如,若第一閾值為1000,如果檢測節(jié)點記錄的第一個數(shù)為1000,則檢測節(jié)點確定第一區(qū)間是已滿區(qū)間;如果檢測節(jié)點記錄的第一個數(shù)為800,則檢測節(jié)點確定第一區(qū)間不是已滿區(qū)間,且檢測節(jié)點進入下次采樣周期進行第801次采樣。
本發(fā)明實施例中,在一個檢測周期內(nèi)的每個采樣周期內(nèi),在S101之后,檢測節(jié)點執(zhí)行S103-S105,執(zhí)行完S103-S105后接著執(zhí)行S102,執(zhí)行完S102后返回到S100繼續(xù)執(zhí)行(即執(zhí)行完S102后進入下次采樣周期采樣),直至該檢測周期結(jié)束。或者,在S101之后,檢測節(jié)點執(zhí)行S103-S104和S106,執(zhí)行完S103-S104和S106后返回到S100繼續(xù)執(zhí) 行(即執(zhí)行完S106后進入下次采樣周期采樣),直至該檢測周期結(jié)束。
可選的,結(jié)合圖2,如圖4所示,上述實施例中的第一閾值為N,上述第一區(qū)間對應(yīng)N個第二延時,上述S102、若第一區(qū)間是已滿區(qū)間,則檢測節(jié)點計算第一延時與區(qū)間平均延時的比值,得到第一比值之前,本發(fā)明實施例提供的檢測慢盤的方法還包括:
S107、若第一區(qū)間是已滿區(qū)間,檢測節(jié)點計算N個第二延時中的多個第二延時的平均值,得到區(qū)間平均延時。
其中,本發(fā)明實施例中,N可以取大于或等于1的整數(shù)。
上述S102具體可以為:
S102a、檢測節(jié)點計算第一延時與區(qū)間平均延時的比值得到第一比值。
本發(fā)明實施例中,當(dāng)?shù)谝粎^(qū)間為已滿區(qū)間時,與第一區(qū)間對應(yīng)的第二延時的數(shù)量與第一閾值相等。本實施例中,與第一區(qū)間對應(yīng)的第二延時的數(shù)量為N個。上述多個第二延時可以為N個第二延時,也可以為N個第二延時中的部分第二延時,具體可根據(jù)實際檢測需求進行選取,本發(fā)明不作限定。
可選的,上述N個第二延時按照采樣順序依次排列,多個第二延時為N個第二延時中的前M個第二延時,M為整數(shù),N/3≤M≤2N/3,且N/3和2N/3均取整數(shù)。
其中,當(dāng)N為3的倍數(shù)時,N/3和2N/3均為整數(shù),此時M取該整數(shù);當(dāng)N不是3的倍數(shù)時,N/3和2N/3均為小數(shù),此時M取N/3和2N/3的整數(shù)部分。
示例性的,假設(shè)N=100,則100/3可以取33,200/3可以選取66,從而M的取值范圍為33≤M≤66。
當(dāng)然,本發(fā)明實施例中,當(dāng)N不是3的倍數(shù)時,M也可以取N/3的整數(shù)部分加1;相應(yīng)的,M也可以取2N/3的整數(shù)部分加1。例如,M可以取100/3的整數(shù)部分33加1,即34。
優(yōu)選的,M=N/2,上述多個第二延時為N個第二延時中的前N/2個第二延時,且N/2取整數(shù)。
其中,當(dāng)N為偶數(shù)時,N/2為整數(shù),此時M取該整數(shù);當(dāng)N為奇數(shù)時,N/2為小數(shù),此時M取N/2的整數(shù)部分。
例如,當(dāng)N為100時,N/2為50,此時M可以取50,即M個第二延時為100個第二延時中的前50個第二延時;當(dāng)N為121時,N/2為60.5,此時M可以取60,即M個第二延時為121個第二延時中的前60個第二延時。
當(dāng)然,本發(fā)明實施例中,當(dāng)N為奇數(shù)時,M也可以取N/2的整數(shù)部分加1。例如M可以取121/2的整數(shù)部分60加1,即61。
本發(fā)明實施例中,由于選取的第二延時的數(shù)量決定了檢測慢盤的準(zhǔn)確度和靈敏度,因此若選取的第二延時的數(shù)量越多,則表示檢測所用的采樣數(shù)據(jù)越多,采樣結(jié)果就越收斂,從而檢測慢盤的準(zhǔn)確度也就越高;相應(yīng)的,由于選取的第二延時的數(shù)量越多,可能會導(dǎo)致區(qū)間平均延時的值較大,因此會不太容易檢測出慢盤(可能需要在比較多的檢測周期才能檢測出慢盤),即檢測慢盤的靈敏度較低。若選取的第二延時的數(shù)量越少,則表示檢測所用的采樣數(shù)據(jù)越少,采樣結(jié)果就越分散,從而檢測慢盤的準(zhǔn)確度也就越低;相應(yīng)的,由于選取的第二延時的數(shù)量越少,可能會導(dǎo)致區(qū)間平均延時的值較小,因此會比較容易檢測出慢盤(可能在比較少的檢測周期就能檢測出慢盤),即檢測慢盤的靈敏度較高。
示例性的,下面以多個第二延時取N個第二延時中的前N/2個第二延時為例,來詳細說明上述多個第二延時的具體選取。
假設(shè)在實際應(yīng)用中,第一區(qū)間已滿之前采樣到11個第二延時,且該11個第二延時存在某一次采樣后突然上升的情況,例如,該11個第二延時分別為13S、14S、15S、17S、20S、21S、22S、24S、25S、28S和30S。其中,該11個第二延時中的前5個第二延時的平均值,即區(qū)間平均延時約為16S;該11個第二延時的平均值,即區(qū)間平均延時約為21S。
在上述列舉的11個第二延時中,如果取該11個第二延時中的前一半(11/2=5.5,5.5取整數(shù)部分為5)第二延時,即該11個第二延時中的前5個第二延時,則這前5個第二延時的平均值,即區(qū)間平均延時約為16S,由于在計算第一比值(第一延時/區(qū)間平均延時)時,區(qū)間平均延時會作為 分母,因此,區(qū)間平均延時越小,第一比值就越大,而多個第一比值的平均值就越大,從而也就越容易超過設(shè)定的第三閾值,即也就會比較容易檢測出慢盤,檢測慢盤的靈敏度就越高;相應(yīng)的,由于只取了該11個第二延時中的前一半第二延時,因此可能會導(dǎo)致檢測的結(jié)果不準(zhǔn)確,從而檢測慢盤的準(zhǔn)確度較低。而如果取該11個第二延時,則該11個第二延時的平均值,即區(qū)間平均延時約為21S,由于區(qū)間平均延時越大,第一比值就越小,而多個第一比值的平均值就越小,從而也就越不容易超過設(shè)定的第三閾值,即也就會不太容易檢測出慢盤,從而檢測慢盤的靈敏度就越低;相應(yīng)的,由于取了該11個第二延時,因此可能會使得檢測的結(jié)果比較準(zhǔn)確,從而檢測慢盤的準(zhǔn)確度較高。
本發(fā)明實施例提供的檢測慢盤的方法,在選取多個第二延時時,可以選取與第一區(qū)間對應(yīng)的N個第二延時,即采用N個第二延時的平均值作為區(qū)間平均延時。當(dāng)然,也可以選取N個第二延時中的部分第二延時。具體的,由于在實際應(yīng)用中,采樣的數(shù)據(jù)通常都會存在“突然上升”的情況,因此為了保證檢測慢盤的準(zhǔn)確度和靈敏度均衡,通常優(yōu)選的可以選取N個第二延時中的前2/N個第二延時。具體的,可根據(jù)實際檢測需求進行設(shè)定,本發(fā)明不作限定。
本發(fā)明實施例提供的檢測慢盤的方法中,與選取N個第二延時計算區(qū)間平均延時相比,通過在與第一區(qū)間對應(yīng)的N個第二延時中選取前M個第二延時計算區(qū)間平均延時,能夠保證計算的第一延時與區(qū)間平均延時的比值,即第一比值較大,從而使得計算的多個第一比值的平均值就越大,這樣可以在保證檢測慢盤的準(zhǔn)確度的情況下,適當(dāng)?shù)靥岣邫z測慢盤的靈敏度,進而達到檢測慢盤的準(zhǔn)確度和靈敏度之間的均衡。
實施例三
基于上述各實施例,本發(fā)明實施例提供一種檢測慢盤的方法,該方法應(yīng)用于多個硬盤的場景,檢測節(jié)點針對第一硬盤執(zhí)行該方法,第一硬盤為多個硬盤中的其中一個硬盤。
如圖5所示,本發(fā)明實施例還提供一種檢測慢盤的方法,該方法包括:
S201、檢測節(jié)點獲取與第一硬盤對應(yīng)的第一比值平均值。
基于上述實施例一和實施例二的描述,檢測節(jié)點通過針對第一硬盤執(zhí)行上述實施例中如圖2所示的各個步驟中除S111之外的其他步驟(包括S10中的S100-S102以及S11中的S110);或者執(zhí)行上述實施例中如圖3所示的各個步驟中除S111之外的其他步驟(包括S10中的S100-S105,或S10中的S100-S101、S103-S104和S106,以及S11中的S110);或者執(zhí)行上述實施例中如圖4所示的實施例中除S111之外的其他步驟(包括S10中的S100-S101、S107和S102a,以及S11中的S110),獲取與第一硬盤對應(yīng)的第一比值平均值。
S202、檢測節(jié)點獲取與多個硬盤中除第一硬盤外的其他硬盤一一對應(yīng)的多個第一比值平均值。
其中,上述其他硬盤中的每個硬盤對應(yīng)的第一比值平均值的獲取方法與第一硬盤對應(yīng)的第一比值平均值的獲取方法相同。具體可參見上述與第一硬盤對應(yīng)的第一比值平均值的獲取方法,此處不再贅述。
特別的,與多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均為與該硬盤對應(yīng)的多個第一比值計算得到。對于第一比值的描述可參見上述如圖2所示的實施例中對第一比值的相關(guān)描述,此處不再贅述。
檢測節(jié)點通過針對多個硬盤中的每個硬盤執(zhí)行上述所述的各個步驟,可以獲取到與多個硬盤一一對應(yīng)的多個第一比值平均值。若與這多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于第三閾值,即對這多個硬盤分別進行檢測未檢測到有慢盤,則如圖5所示,本發(fā)明實施例提供的檢測慢盤的方法還可以包括:
S203、檢測節(jié)點計算與多個硬盤一一對應(yīng)的多個第一比值平均值的平均值,得到第一平均值。
為了保證檢測慢盤的準(zhǔn)確度,本發(fā)明實施例提供的檢測慢盤的方法中,多個硬盤之間的檢測也是在同一個區(qū)間內(nèi)進行的。例如本實施例中,多個硬盤之間的檢測是在第一區(qū)間內(nèi)進行的。
例如,假設(shè)有5個硬盤,分別為硬盤A、硬盤B、硬盤C、硬盤D和硬盤E。檢測節(jié)點分別獲取到硬盤A的第一比值平均值為TA、硬盤B的 第一比值平均值為TB、硬盤C的第一比值平均值為TC、硬盤D的第一比值平均值為TD和硬盤E的第一比值平均值為TE后,檢測節(jié)點再計算TA、TB、TC、TD和TE的平均值,即第一平均值。
其中,多個第一比值平均值的平均值可以是多個第一比值平均值的算術(shù)平均值,也可以是多個第一比值平均值的幾何平均值,本發(fā)明不作具體限定。其中,多個第一比值平均值的算術(shù)平均值可以為不加權(quán)算術(shù)平均值或加權(quán)算術(shù)平均值;多個第一比值平均值的幾何平均值可以為不加權(quán)幾何平均值或加權(quán)幾何平均值。
對于多個第一比值平均值的算術(shù)平均值的計算方法具體可以參見上述如圖2所示的實施例中多個第二延時的算術(shù)平均值的計算方法;多個第一比值平均值的幾何平均值的計算方法具體可以參見上述如圖2所示的實施例中多個第二延時的幾何平均值的計算方法,此處不再贅述。
S204、檢測節(jié)點計算與多個硬盤中的每個硬盤對應(yīng)的第一比值平均值與第一平均值的比值,得到多個第二比值。
S205、檢測節(jié)點確定多個第二比值中,與大于或等于第四閾值的第二比值對應(yīng)的硬盤為慢盤。
可選的,上述第四閾值可以為根據(jù)實際檢測需求預(yù)先設(shè)定的,本發(fā)明不作具體限定。
由于多個硬盤為同質(zhì)盤,因此多個硬盤的性能比較接近,且盤間波動較小,所以第四閾值可以用于衡量每個硬盤相對于所有硬盤的平均值的波動。本發(fā)明實施例中,第四閾值越小,表示要求每個硬盤相對于所有硬盤的平均值的波動就越小,從而在檢測時,若硬盤稍微有波動,則可能會導(dǎo)致第二比值超過第四閾值,進而可以提高檢測慢盤的準(zhǔn)確度和靈敏度。
優(yōu)選的,本發(fā)明實施例提供的檢測慢盤的方法中,為了保證檢測慢盤的準(zhǔn)確度,由于在對單盤進行檢測時,為了避免硬盤性能突然波動可能會導(dǎo)致檢測結(jié)果不準(zhǔn)確,因此可將第三閾值設(shè)置的較大一些,以提高檢測慢盤的準(zhǔn)確度。而在對多個硬盤進行檢測時,由于多個硬盤間的波動通常較小,因此可將第四閾值設(shè)置的較小一些,以提高檢測慢盤的準(zhǔn)確度。
本發(fā)明實施例提供的檢測慢盤的方法中,當(dāng)檢測節(jié)點對多個硬盤分別 進行檢測未檢測到有慢盤(即與這多個硬盤一一對應(yīng)的多個第一比值平均值均小于第三閾值)時,該檢測節(jié)點還可以采用上述如圖5所示的方法在多個硬盤之間進行檢測,從而可能會檢測出單盤檢測時未檢測出的慢盤,進而能夠提高檢測慢盤的準(zhǔn)確度。
進一步地,檢測節(jié)點確定多個硬盤中的某個硬盤為慢盤后,檢測節(jié)點可將檢測結(jié)果通過打印日志、告警或者界面展示的方式告知相關(guān)的處理模塊,從而該處理模塊可以對該硬盤進行隔離,例如,處理模塊可以從軟件上將該硬盤從云存儲系統(tǒng)中刪除,或者從硬件上將該硬盤自動彈出。
本發(fā)明實施例提供一種檢測慢盤的方法,該方法應(yīng)用于多個硬盤的場景,則當(dāng)上述實施例中檢測節(jié)點獲取的與多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于第三閾值,即對單個硬盤分別檢測未檢測到有慢盤時,還可以進一步對多個硬盤進行盤間檢測,即本發(fā)明實施例利用同質(zhì)盤之間的參數(shù)和性能相似的特性,對與每個硬盤對應(yīng)的第一比值平均值相對于第一平均值(與多個硬盤一一對應(yīng)的多個第一比值平均值的平均值)的比值,即第二比值進行檢測,從而可能會在與某個硬盤對應(yīng)的第一比值平均值相對于第一平均值稍微有波動時,就可能會被檢測出,進而可以在對單個硬盤分別檢測未檢測到有慢盤的情況下檢測出慢盤,能夠提高檢測慢盤的準(zhǔn)確度。
實施例四
如圖6所示,本發(fā)明實施例提供一種檢測慢盤的裝置,該檢測慢盤的裝置可以為云存儲系統(tǒng)中的一個檢測節(jié)點,該檢測節(jié)點可以為一個獨立的計算機節(jié)點,也可以為一個集成在計算機節(jié)點中的功能單元等,本發(fā)明不作具體限定。
具體的,本發(fā)明實施例提供的檢測慢盤的裝置可以包括采樣單元10和檢測單元11;其中,
所述采樣單元10,用于在檢測周期內(nèi),周期性地進行采樣,且在每次采樣周期內(nèi),完成如下過程:
獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指 標(biāo)值,其中,所述第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,所述延時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值;
確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間;其中,所述第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個;
若所述第一區(qū)間是已滿區(qū)間,則計算所述第一延時與區(qū)間平均延時的比值,得到第一比值;其中,所述已滿區(qū)間是在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,所述區(qū)間平均延時為所述第一區(qū)間中的多個第二延時的平均值,所述多個第二延時一一對應(yīng)于多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
檢測單元11,用于在每次檢測周期結(jié)束后,下一個檢測周期開始前,完成如下過程:
若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算所述采樣單元在多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,所述多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;以及若所述第一比值平均值大于或等于第三閾值,則確定所述硬盤為慢盤。
可選的,所述采樣單元10,還用于在每次采樣周期內(nèi),確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到所述第一區(qū)間的個數(shù)為第一個數(shù);并判斷所述第一個數(shù)是否達到所述第一閾值;以及若所述第一個數(shù)達到所述第一閾值,則確定所述第一區(qū)間是已滿區(qū)間;若所述第一個數(shù)沒有達到所述第一閾值,則確定所述第一區(qū)間不是已滿區(qū)間,并進入下次采樣周期采樣,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
可選的,所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的利用率;或者,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的讀寫速度。
可選的,所述第一閾值為N,所述第一區(qū)間對應(yīng)N個第二延時,N為大于或等于1的整數(shù),
所述采樣單元10,還用于在計算所述第一延時與區(qū)間平均延時的比值之前,計算所述N個第二延時中的所述多個第二延時的平均值,得到所述區(qū)間平均延時。
可選的,所述N個第二延時按照采樣順序依次排列,所述多個第二延時為所述N個第二延時中的前M個第二延時,M為整數(shù),N/3≤M≤2N/3,且N/3和2N/3均取整數(shù)。
可選的,M=N/2,
所述多個第二延時為所述N個第二延時中的前N/2個第二延時,且N/2取整數(shù)。
可選的,所述采樣單元10計算的所述多個第二延時的平均值為所述多個第二延時的算術(shù)平均值或者所述多個第二延時的幾何平均值;
所述檢測單元11計算的所述多個第一比值的平均值為所述多個第一比值的算術(shù)平均值或者所述多個第一比值的幾何平均值。
可選的,所述裝置應(yīng)用于多個硬盤的場景,所述裝置針對第一硬盤進行檢測,所述第一硬盤為所述多個硬盤中的其中一個硬盤;
所述檢測單元11,還用于獲取與所述多個硬盤中除所述第一硬盤外的其他硬盤一一對應(yīng)的多個第一比值平均值;并當(dāng)與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于所述第三閾值時,計算與所述多個硬盤一一對應(yīng)的多個第一比值平均值的平均值,得到第一平均值;且計算與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值與所述第一平均值的比值,得到多個第二比值;以及確定所述多個第二比值中,與大于或等于第四閾值的第二比值對應(yīng)的硬盤為慢盤,其中,所述其他硬盤中的每個硬盤對應(yīng)的第一比值平均值的獲取方法與所述第一硬盤對應(yīng)的第一比值平均值的獲取方法相同。
本發(fā)明實施例提供的檢測慢盤的裝置,當(dāng)該裝置對多個硬盤分別進行檢測未檢測到有慢盤(即與這多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于第三閾值)時,該裝置還可以在多個硬盤之間進行檢測,從而可能會檢測出單盤檢測未檢測出的慢盤,進而能夠提高檢測慢盤的準(zhǔn)確度。
本發(fā)明實施例提供一種檢測慢盤的裝置,首先,由于該裝置獲取的延 時相關(guān)指標(biāo)值會隨延時的變化而發(fā)生相應(yīng)的變化,即延時與延時相關(guān)指標(biāo)值密切相關(guān),因此通過將最大延時相關(guān)指標(biāo)值劃分區(qū)間,并在每個區(qū)間內(nèi)采樣與屬于該區(qū)間的延時相關(guān)指標(biāo)值對應(yīng)的延時,可以保證一個區(qū)間內(nèi)采樣的延時有統(tǒng)一的衡量標(biāo)準(zhǔn),從而提高檢測慢盤的準(zhǔn)確度。其次,該裝置在第一區(qū)間是已滿區(qū)間(即在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)達到第一閾值)后才計算第一比值(在沒滿之前的采樣過程可認為是學(xué)習(xí)過程),可以保證在第一區(qū)間獲取足夠多個延時相關(guān)指標(biāo)值(即在第一區(qū)間采樣足夠多次)后再計算第一比值,從而能夠提高檢測慢盤的準(zhǔn)確度。其次,該裝置在每次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值時再計算第一比值平均值,可以保證在大部分區(qū)間已經(jīng)結(jié)束學(xué)習(xí)過程,即大部分區(qū)間已經(jīng)采樣了足夠多次后再計算第一比值平均值,也能夠提高檢測慢盤的準(zhǔn)確度。此外,由于本發(fā)明實施例的檢測慢盤的裝置計算的第一比值平均值為由多個第一比值得到的一個比例平均值,其并不是實際的延時數(shù)值,因此該第一比值平均值可以準(zhǔn)確地體現(xiàn)硬盤的性能變化趨勢,通過設(shè)置第三閾值,以及將第一比值平均值與第三閾值進行比較,可以在硬盤性能發(fā)生變化時準(zhǔn)確地檢測出硬盤是慢盤,從而進一步提高檢測慢盤的準(zhǔn)確度。
實施例五
如圖7所示,本發(fā)明實施例提供一種檢測慢盤的裝置,所述檢測慢盤的裝置可以為云存儲系統(tǒng)中的一個檢測節(jié)點,該檢測節(jié)點可以為一個獨立的計算機節(jié)點,也可以為一個集成在計算機節(jié)點中的功能單元等,本發(fā)明不作具體限定。
具體的,本發(fā)明實施例提供的所述檢測慢盤的裝置可以包括處理器20、存儲器21、通信接口22,以及系統(tǒng)總線23。所述處理器20、存儲器21以及通信接口22之間通過所述系統(tǒng)總線23連接并完成相互間的通信。
所述處理器20可以是一個中央處理器(英文:central processing unit,縮寫:CPU),或者是特定集成電路(英文:application specific integrated circuit,縮寫:ASIC),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
所述通信接口22可以為所述檢測慢盤的裝置與其他設(shè)備進行通信的通信接口。
所述存儲器21可以包括易失性存儲器(英文:volatile memory),例如隨機存取存儲器(英文:random-access memory,縮寫:RAM);所述存儲器21也可以包括非易失性存儲器(英文:non-volatile memory),例如只讀存儲器(英文:read-only memory,縮寫:ROM),快閃存儲器(英文:flash memory),SSD、HDD或HHD;所述存儲器21還可以包括上述種類的存儲器的組合。
當(dāng)本發(fā)明實施例提供的所述檢測慢盤的裝置運行時,所述處理器20可以通過讀取存儲在存儲器的程序來執(zhí)行圖2~圖5任意之一所述的方法流程,具體包括:
所述處理器20,用于在檢測周期內(nèi),周期性地進行采樣,且在每次采樣周期內(nèi),完成如下過程:
獲取本次采樣周期內(nèi)硬盤讀寫數(shù)據(jù)的第一延時以及第一延時相關(guān)指標(biāo)值,其中,所述第一延時相關(guān)指標(biāo)值為延時相關(guān)指標(biāo)值的一個具體值,所述延時相關(guān)指標(biāo)值為一個會隨延時變化而發(fā)生相應(yīng)變化的一個值;
確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間;其中,所述第一區(qū)間為預(yù)先針對最大延時相關(guān)指標(biāo)值劃分的多個區(qū)間中的一個;
若所述第一區(qū)間是已滿區(qū)間,則計算所述第一延時與區(qū)間平均延時的比值,得到第一比值;其中,所述已滿區(qū)間是在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到該區(qū)間的個數(shù)達到第一閾值的區(qū)間,所述區(qū)間平均延時為所述第一區(qū)間中的多個第二延時的平均值,所述多個第二延時一一對應(yīng)于多個采樣周期,每個第二延時在與之對應(yīng)的采樣周期內(nèi)被獲取,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
所述處理器20,還用于在每次檢測周期結(jié)束后,下一個檢測周期開始前,完成如下過程:
若在本次檢測周期內(nèi)的所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值,則計算所述采樣單元在多個采樣周期內(nèi)計算的多個第一比值的平均值,得到第一比值平均值,所述多個采樣周期為獲取到落入各個已滿區(qū)間的多個延時相關(guān)指標(biāo)值的采樣周期;以及若所述第一比值平均值大于或等于第三閾值,則確定所述硬盤為慢盤。
所述存儲器21,用于存儲所述處理器20執(zhí)行上述檢測慢盤的過程的軟件程序,從而所述處理器20通過執(zhí)行所述軟件程序,完成上述檢測慢盤的過程。
可選的,所述處理器20,還用于在每次采樣周期內(nèi),確定所述第一延時相關(guān)指標(biāo)值所屬的第一區(qū)間之后,記錄經(jīng)過本次采樣后,在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到所述第一區(qū)間的個數(shù)為第一個數(shù);并判斷所述第一個數(shù)是否達到所述第一閾值;以及若所述第一個數(shù)達到所述第一閾值,則確定所述第一區(qū)間是已滿區(qū)間;若所述第一個數(shù)沒有達到所述第一閾值,則確定所述第一區(qū)間不是已滿區(qū)間,并進入下次采樣周期采樣,其中,每個采樣周期對應(yīng)于一個延時相關(guān)指標(biāo)值。
可選的,所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的利用率;或者,
所述延時相關(guān)指標(biāo)值為所述硬盤讀寫數(shù)據(jù)的讀寫速度。
可選的,所述第一閾值為N,所述第一區(qū)間對應(yīng)N個第二延時,N為大于或等于1的整數(shù),
所述處理器20,還用于在計算所述第一延時與區(qū)間平均延時的比值之前,計算所述N個第二延時中的所述多個第二延時的平均值,得到所述區(qū)間平均延時。
可選的,所述N個第二延時按照采樣順序依次排列,所述多個第二延時為所述N個第二延時中的前M個第二延時,M為整數(shù),N/3≤M≤2N/3,且N/3和2N/3均取整數(shù)。
可選的,M=N/2,
所述多個第二延時為所述N個第二延時中的前N/2個第二延時,且N/2取整數(shù)。
可選的,所述處理器20計算的所述多個第二延時的平均值為所述多個第二延時的算術(shù)平均值或者所述多個第二延時的幾何平均值;
所述處理器20計算的所述多個第一比值的平均值為所述多個第一比值的算術(shù)平均值或者所述多個第一比值的幾何平均值。
可選的,所述裝置應(yīng)用于多個硬盤的場景,所述裝置針對第一硬盤進行檢測,所述第一硬盤為所述多個硬盤中的其中一個硬盤;
所述處理器20,還用于獲取與所述多個硬盤中除所述第一硬盤外的其他硬盤一一對應(yīng)的多個第一比值平均值;并當(dāng)與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于所述第三閾值時,計算與所述多個硬盤一一對應(yīng)的多個第一比值平均值的平均值,得到第一平均值;且計算與所述多個硬盤中的每個硬盤對應(yīng)的第一比值平均值與所述第一平均值的比值,得到多個第二比值;以及確定所述多個第二比值中,與大于或等于第四閾值的第二比值對應(yīng)的硬盤為慢盤,其中,所述其他硬盤中的每個硬盤對應(yīng)的第一比值平均值的獲取方法與所述第一硬盤對應(yīng)的第一比值平均值的獲取方法相同。
本發(fā)明實施例提供的檢測慢盤的裝置,當(dāng)該裝置對多個硬盤分別進行檢測未檢測到有慢盤(即與這多個硬盤中的每個硬盤對應(yīng)的第一比值平均值均小于第三閾值)時,該裝置還可以在多個硬盤之間進行檢測,從而可能會檢測出單盤檢測未檢測出的慢盤,進而能夠提高檢測慢盤的準(zhǔn)確度。
本發(fā)明實施例提供一種檢測慢盤的裝置,首先,由于該裝置獲取的延時相關(guān)指標(biāo)值會隨延時的變化而發(fā)生相應(yīng)的變化,即延時與延時相關(guān)指標(biāo)值密切相關(guān),因此通過將最大延時相關(guān)指標(biāo)值劃分區(qū)間,并在每個區(qū)間內(nèi)采樣與屬于該區(qū)間的延時相關(guān)指標(biāo)值對應(yīng)的延時,可以保證一個區(qū)間內(nèi)采樣的延時有統(tǒng)一的衡量標(biāo)準(zhǔn),從而提高檢測慢盤的準(zhǔn)確度。其次,該裝置在第一區(qū)間是已滿區(qū)間(即在所有采樣周期內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到第一區(qū)間的個數(shù)達到第一閾值)后才計算第一比值(在沒滿之前的采樣過程可認為是學(xué)習(xí)過程),可以保證在第一區(qū)間獲取足夠多個延時相關(guān)指標(biāo)值(即在第一區(qū)間采樣足夠多次)后再計算第一比值,從而能夠提高檢測慢盤的準(zhǔn)確度。其次,該裝置在每次檢測周期內(nèi)的所有采樣周期 內(nèi)獲取到的所有延時相關(guān)指標(biāo)值落入到各個已滿區(qū)間的個數(shù)大于或等于第二閾值時再計算第一比值平均值,可以保證在大部分區(qū)間已經(jīng)結(jié)束學(xué)習(xí)過程,即大部分區(qū)間已經(jīng)采樣了足夠多次后再計算第一比值平均值,也能夠提高檢測慢盤的準(zhǔn)確度。此外,由于本發(fā)明實施例的檢測慢盤的裝置計算的第一比值平均值為由多個第一比值得到的一個比例平均值,其并不是實際的延時數(shù)值,因此該第一比值平均值可以準(zhǔn)確地體現(xiàn)硬盤的性能變化趨勢,通過設(shè)置第三閾值,以及將第一比值平均值與第三閾值進行比較,可以在硬盤性能發(fā)生變化時準(zhǔn)確地檢測出硬盤是慢盤,從而進一步提高檢測慢盤的準(zhǔn)確度。
通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟 件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。