檢測慢盤的處理方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種檢測慢盤的處理方法和裝置,該包括:從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/O請求的I/O延遲;根據(jù)各個I/O請求的I/O延遲,確定各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;各個時間區(qū)間是將預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的;在預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系,確定各個時間區(qū)間對應(yīng)的I/O請求數(shù)量;根據(jù)各個時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定硬盤為慢盤。通過該檢測慢盤的處理方法和裝置,充分考慮了I/O請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,從而可準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響。
【專利說明】檢測慢盤的處理方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及計算機(jī)技術(shù),尤其涉及一種檢測慢盤的處理方法和裝置。
【背景技術(shù)】
[0002]為了滿足不斷提高業(yè)務(wù)的處理效率,設(shè)備上通常設(shè)置多個硬盤,但硬盤由于壞道和外界振動等原因,處理I/O (Input/Output,輸入/輸出)請求時會花較多的時間進(jìn)行糾錯,導(dǎo)致對I/O請求響應(yīng)過慢,從而該硬盤上所處理的業(yè)務(wù)的處理效率降低,嚴(yán)重時造成主機(jī)業(yè)務(wù)中斷,影響了設(shè)備的性能,其中這種對I/O請求響應(yīng)過慢,影響業(yè)務(wù)處理效率的硬盤稱為慢盤。因此,在設(shè)備通過多個硬盤處理業(yè)務(wù)時,實(shí)時的對各個硬盤進(jìn)行檢測,具體的,記錄各個硬盤上每個I/O請求的I/O延遲,所述I/O延遲為I/O請求從下發(fā)給硬盤的起始時刻至該硬盤對為I/O請求進(jìn)行響應(yīng)所需的時間;隨后統(tǒng)計在一段時間內(nèi)I/O延遲超過預(yù)設(shè)時間門限值的I/O請求數(shù)量,若一個硬盤上I/O延遲超過預(yù)設(shè)時間門限值的I/O請求數(shù)量超過一定的預(yù)設(shè)閾值,則確定該硬盤為慢盤,則便將該慢盤從磁盤陣列的RAID (RedundantArrays of Inexpensive Disks,磁盤陣列)組中移除,以保障設(shè)備的處理業(yè)務(wù)的效率。
[0003]但在實(shí)際應(yīng)用中發(fā)現(xiàn),硬盤上I/O延遲與I/O請求數(shù)量的關(guān)聯(lián)關(guān)系,即在一段時間內(nèi),硬盤上I/o延遲較低的I/O請求的數(shù)量較多,而I/O延遲較高的I/O請求的數(shù)量較少,因此,若一個硬盤上I/O延遲小于300ms (毫秒)的I/O請求數(shù)量為60,而I/O延遲處于300ms?400ms之間的I/O請求數(shù)量為2,若此時判斷慢盤的判斷條件為“I/O延遲超過300ms的I/O請求數(shù)量超過50時,該硬盤為慢盤”,則依據(jù)該判斷條件,會確認(rèn)上述硬盤不是慢盤;但設(shè)備在處理業(yè)務(wù)時,硬盤上I/o延遲較高的I/O請求的數(shù)量盡管很少,但對硬盤處理業(yè)務(wù)的效率所產(chǎn)生的不良影響卻較大,因此,采用現(xiàn)有技術(shù)中的檢測方案,不能準(zhǔn)確的檢測出慢盤,不能及時的將慢盤移除,導(dǎo)致設(shè)備的性能下降。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種檢測慢盤的處理方法和裝置,用于優(yōu)化慢盤檢測的過程,以使設(shè)備上硬盤的布置合理。
[0005]第一方面,本發(fā)明實(shí)施例提供一種檢測慢盤的處理方法,包括:
[0006]從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/O請求的I/O延遲;
[0007]根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的;
[0008]在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/O請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量;
[0009]根據(jù)各個所述時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0010]結(jié)合第一方面,在第一實(shí)施方式中,所述根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/O請求與所述預(yù)置檢測時間段內(nèi)的各個時間區(qū)間的對應(yīng)關(guān)系,包括:
[0011]比較所述I/O請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn);
[0012]若所述I/O請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間。
[0013]結(jié)合第一方面第一實(shí)施方式,在第二實(shí)施方式中,所述根據(jù)各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤,包括:
[0014]若所述時間區(qū)間對應(yīng)的I/O請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間;
[0015]在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者
[0016]所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤;
[0017]結(jié)合第一方面至第一方面第二實(shí)施方式中任意一種實(shí)施方式,在第三實(shí)施方式中,所述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/o請求的下發(fā)時刻相同。
[0018]第二方面,本發(fā)明實(shí)施例提供一種檢測慢盤的處理裝置,包括:
[0019]獲取模塊,用于從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/O請求的I/O延遲;
[0020]第一確定模塊,用于根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的;
[0021]第二確定模塊,用于在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/O請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量;
[0022]第三確定模塊,用于根據(jù)各個所述時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0023]結(jié)合第二方面,在第一實(shí)施方式中,第一確定模塊具體用于比較所述I/O請求的I/o延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn);
[0024]若所述I/O請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間。
[0025]結(jié)合第二方面第一實(shí)施方式,在第二實(shí)施方式中,第三確定模塊具體用于若所述時間區(qū)間對應(yīng)的I/o請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間;
[0026]在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者
[0027]所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤;
[0028]結(jié)合第二方面至第二方面第二實(shí)施方式中任意一種實(shí)施方式,在第三實(shí)施方式中,所述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/O請求的下發(fā)時刻相同。
[0029]本發(fā)明實(shí)施例提供的檢測慢盤的處理方法和裝置,通過將預(yù)置檢測時間段的時間長度劃分為多個時間區(qū)間,并向每一個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,從而可以根據(jù)各個時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,準(zhǔn)確的確定慢盤,充分考慮了I/o請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/O請求的分布規(guī)律,從而準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響,以提高設(shè)備的性能?!緦@綀D】
【附圖說明】
[0030]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1為本發(fā)明檢測慢盤的處理方法實(shí)施例一的流程圖;
[0032]圖2為本發(fā)明檢測慢盤的處理方法實(shí)施例二的流程圖;
[0033]圖3為本發(fā)明檢測慢盤的處理裝置實(shí)施例一的結(jié)構(gòu)圖; [0034]圖4為本發(fā)明檢測慢盤的處理裝置實(shí)施例二的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0035]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0036]圖1為本發(fā)明檢測慢盤的處理方法實(shí)施例一的流程圖。如圖1所示,本實(shí)施例的執(zhí)行主體為檢測慢盤的處理裝置,該裝置可以采用硬件和/或軟件的方式實(shí)現(xiàn),優(yōu)選的,該處理裝置可以設(shè)置在裝載了硬盤的設(shè)備上,便于對設(shè)備中的硬盤進(jìn)行檢測,具體的,該方法包括:
[0037]S101、從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個I/O請求的I/O延遲。
[0038]通常來說,設(shè)備通過驅(qū)動程序、I/O接口等向設(shè)備中的硬盤下發(fā)I/O請求,且設(shè)備在向硬盤下發(fā)的各個I/o請求時,會對各個I/O請求打上時間戳,該時間戳記錄了 I/O請求下發(fā)的時刻,隨著時間的推移,當(dāng)硬盤對I/o請求做出響應(yīng)時,上述處理裝置會根據(jù)硬盤對I/o請求做出響應(yīng)的時刻和該I/O請求上的時間戳記錄的下發(fā)時刻,計算出各個I/O請求的I/O延遲。
[0039]其中所預(yù)置檢測時間段的起始時刻與向硬盤下發(fā)各個I/O請求的下發(fā)時刻相同,即當(dāng)前需要對硬盤進(jìn)行檢測,則設(shè)備向硬盤下發(fā)各個I/o請求的同時,上述處理裝置啟動預(yù)置時間段計時,該啟動時刻即為預(yù)置檢測時間段的起始時刻。其中預(yù)置時間段的具體時間長度可根據(jù)實(shí)際需要靈活設(shè)置,通常根據(jù)實(shí)際經(jīng)驗,以設(shè)備上出現(xiàn)過的最高I/o延遲的時間長度作為預(yù)置時間段的時間長度。
[0040]S102、根據(jù)各個I/O請求的I/O延遲,確定各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)
系O
[0041]上述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的;具體的,預(yù)置時間段的是時間長度為T,則將該時間長度T劃分為[X1,X2)、[X2, X3)……[Xi,XiJ……[Xlri,Xn),其中,Χη=τ,i為正整數(shù),且n>i≥1,且Xi〈Xi+1。
[0042]當(dāng)處理裝置獲取一個I/O請求的I/O延遲,則比較該I/O請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn);若I/o請求的I/O延遲大于各個時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn)(上述Xi),并小于第一時間區(qū)間的終點(diǎn)(xi+1),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間,該第一時間區(qū)間可以為上述各個時間區(qū)間內(nèi)任意一個時間區(qū)間,對于一個I/o請求來說,若存在一個時間區(qū)間的起點(diǎn)小于該I/o請求的I/O延遲,且該時間區(qū)間的終點(diǎn)大于該I/o請求的I/O延遲,則該時間區(qū)間對于該I/O請求來說為第一時間區(qū)間。
[0043]舉例來說,預(yù)置時間段T=400ms,該預(yù)置時間段被劃分為[O,100ms)、[100ms,200ms)、[200ms, 300ms)、[300ms, 400ms);當(dāng)一個 I/O 請求的 I/O 延遲為 250ms 時,通過比較該I/O請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn),確定第一時間區(qū)間[200ms,300ms)的起點(diǎn)200ms小于250ms,且終點(diǎn)300ms大于250ms,則確定該I/O請求對應(yīng)于第一時間區(qū)間[200ms,300ms)。
[0044]S103、在預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個I/O請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個時間區(qū)間對應(yīng)的I/O請求數(shù)量;
[0045]如SlOl中所述,處理裝置在設(shè)備下發(fā)I/O請求時開始進(jìn)行計時,且各個I/O請求被響應(yīng)的時刻也不同,則隨著時間的推移,每當(dāng)一個I/o請求被響應(yīng),則處理裝置執(zhí)行SlOl及S102,確定出各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系,則當(dāng)時鐘到達(dá)預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個I/o請求與各個時間區(qū)間的對應(yīng)關(guān)系,確定各個時間區(qū)間對應(yīng)的I/O請求數(shù)量,例如,在預(yù)置檢測時間段內(nèi),依次有I/O請求I至I/O請求5被響應(yīng),則通過SlOl和S102,確定I/O請求1、I/O請求2和I/O請求5共3個I/O請求對應(yīng)于時間區(qū)間[200ms, 300ms),而I/O請求3和I/O請求4對應(yīng)于[300ms, 400ms),則通過S103,確定時間區(qū)間[200ms,300ms)對應(yīng)的I/O請求個數(shù)為3,而時間區(qū)間[300ms,400ms)對應(yīng)的I/O請求個數(shù)為2。
[0046]S104、根據(jù)各個時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0047]本實(shí)施例中,處理裝置對向每個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,則在確定硬盤是否為慢盤時,是根據(jù)各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定硬盤是否為慢盤,充分考慮了 I/o請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/o請求的分布規(guī)律,從而可以準(zhǔn)確的確定硬盤是否為慢盤。
[0048]本實(shí)施例中,通過將預(yù)置檢測時間段的時間長度劃分為多個時間區(qū)間,并向每一個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,從而可以根據(jù)各個時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,準(zhǔn)確的確定慢盤,充分考慮了 I/o請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/o請求的分布規(guī)律,從而可以準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響,以提高設(shè)備的性能。
[0049]圖2為本發(fā)明檢測慢盤的處理方法實(shí)施例二的流程圖。如圖2所示,該方法是在圖1所示的實(shí)施例一的基礎(chǔ)上,進(jìn)一步描述檢測慢盤的處理方法,具體的,該方法包括:
[0050]S201、從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/O請求的I/O延遲。
[0051]具體如SlOl所述,在此不再贅述。
[0052]S202、比較I/O請求的I/O延遲與各個時間區(qū)間的起點(diǎn)和終點(diǎn)。
[0053]即由S201中所述的預(yù)置檢測時間段的起始時刻起,每當(dāng)一個I/O請求被響應(yīng)后便執(zhí)行S201,隨后根據(jù)該I/O請求的I/O延遲,與各個時間區(qū)間的起點(diǎn)和終點(diǎn)進(jìn)行比較。[0054]S203、若I/O請求的I/O延遲大于各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于第一時間區(qū)間的終點(diǎn),則確定I/o請求對應(yīng)于所述第一時間區(qū)間。
[0055]具體的,假設(shè)I/O請求5被響應(yīng),根據(jù)I/O請求5的I/O延遲,依次與預(yù)置時間段內(nèi)的各個時間區(qū)間的起點(diǎn)和終點(diǎn)比較,例如I/o請求5的I/O延遲大于一個時間區(qū)間[Xi,xi+1)的起點(diǎn)Xi并小于該時間區(qū)間[Xi, xi+1)的終點(diǎn)xi+1,即該時間區(qū)間[Xi, xi+1)對I/o請求5來說為第一時間區(qū)間,則確定該I/O請求對應(yīng)于該第一時間區(qū)間,具體的,可以將該時間區(qū)間[Xi,Xi+1)對應(yīng)的計數(shù)器加I ;當(dāng)然可以理解的,若I/o請求5的I/O延遲不滿足條件“不大于一個時間區(qū)間[Xi,Xi+1)的起點(diǎn)Xi并小于該時間區(qū)間[Xi,Xi+1)的終點(diǎn)xi+1”,則該時間區(qū)間[Xi,Xi+1)對應(yīng)的計數(shù)器保持不變,則I/o請求5的I/O延遲繼續(xù)與其他時間區(qū)間去比較;可選的,在確定出I/o請求與某個時間區(qū)間對應(yīng)時,可以在時間區(qū)間表中,將該I/O請求記錄在對應(yīng)的時間區(qū)間所在的表格內(nèi)。
[0056]S204、在預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系,確定各個時間區(qū)間對應(yīng)的I/o請求數(shù)量。
[0057]基于S203中的描述,各個I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系可以通過各個時間區(qū)間的計數(shù)器,或時間區(qū)間表中各個時間區(qū)間所在的表格內(nèi)記錄的I/o請求來表征,則在預(yù)置檢測時間段的結(jié)束時刻,處理裝置在執(zhí)行S204時,可以查看各個時間區(qū)間的計數(shù)器,或者統(tǒng)計時間區(qū)間表中各個時間區(qū)間所在的表格內(nèi)記錄的I/O請求的數(shù)量,以確定各個時間區(qū)間對應(yīng)的I/O請求數(shù)量。
[0058]S205、根據(jù)各個時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0059]具體的,比較時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,若所述各個時間區(qū)間內(nèi)的一個時間區(qū)間對應(yīng)的I/o請求數(shù)量大于或等于該時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定該時間區(qū)間為超限區(qū)間;隨后在確定硬盤是否為慢盤時,可以依據(jù)的第一種判斷條件為:
[0060]在各個時間區(qū)間中,若存在超限區(qū)間,則確定硬盤為慢盤;
[0061 ] 在實(shí)際應(yīng)用中,慢盤對某個設(shè)備的影響較大,則在針對該設(shè)備檢測慢盤時,可以以較嚴(yán)格的條件檢測,即各個時間區(qū)間中,一旦存在超限區(qū)間,便確定該硬盤為慢盤。以上述劃分的時間區(qū)間舉例,時間區(qū)間[0,IOOms)對應(yīng)的I/O請求數(shù)量為60且預(yù)設(shè)閾值為100,時間區(qū)間[100ms,200ms)對應(yīng)的I/O請求數(shù)量為80且預(yù)設(shè)閾值為80、[200ms, 300ms)對應(yīng)的I/O請求數(shù)量為30且預(yù)設(shè)閾值為50、[300ms, 400ms)對應(yīng)的I/O請求數(shù)量為2且預(yù)設(shè)閾值為2,其中超限區(qū)間為[100ms,200ms)和[300ms,400ms),即在四個時間區(qū)間中存在了兩個超限區(qū)間,則確定該硬盤為慢盤,其中各個時間區(qū)間的預(yù)設(shè)閾值是考慮了出現(xiàn)延遲的I/O請求數(shù)量的分布規(guī)律,例如I/O延遲較高的I/O請求數(shù)量較少,但I(xiàn)/O延遲較高的I/O請求數(shù)量較少,因此對應(yīng)的,表征較高延遲的時間區(qū)間[300ms,400ms)設(shè)置的預(yù)設(shè)閾值則較小,以便可準(zhǔn)確的檢測出慢盤;
[0062]靈活的,還可以采用采用第二種判斷條件:
[0063]各個時間區(qū)間中的每一個時間區(qū)間都是超限區(qū)間,則確定硬盤為慢盤。在實(shí)際中,有些硬盤從實(shí)質(zhì)上來說,不是慢盤,但在檢測過程中,有時設(shè)備會因為其他原因出現(xiàn)死機(jī)等極端情況,以使某個時間區(qū)間內(nèi)的I/o請求數(shù)量超過該時間區(qū)間的預(yù)設(shè)閾值,導(dǎo)致出現(xiàn)一個超限區(qū)間,但其他時間區(qū)間都不是超限區(qū)間,則處理裝置不會將該硬盤誤判為慢盤。
[0064]需要說明的是,由于設(shè)備中有多個硬盤,所述處理裝置可針對每個硬盤開啟檢測進(jìn)程,即針對每個硬盤去執(zhí)行上述實(shí)施例中的各個步驟,以在各個硬盤中確定出慢盤。
[0065]本實(shí)施例中,通過將預(yù)置檢測時間段的時間長度劃分為多個時間區(qū)間,并向每一個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,從而可以根據(jù)各個時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,準(zhǔn)確的確定慢盤,充分考慮了 I/o請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/o請求的分布規(guī)律,從而準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響,,以提高設(shè)備的性能。
[0066]圖3為本發(fā)明檢測慢盤的處理裝置實(shí)施例一的結(jié)構(gòu)圖。如圖3所示,該裝置包括:
[0067]獲取模塊31,用于從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/o請求的I/O延遲;
[0068]第一確定模塊32,用于根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段劃分為多個區(qū)間得到的;
[0069]第二確定模塊33,用于在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/O請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量;
[0070]第三確定模塊34,用于根據(jù)各個所述時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0071 ] 進(jìn)一步的,上述第一確定模塊32具體用于比較所述I/O請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn);
[0072]若所述I/O請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間。
[0073]進(jìn)一步的,第三確定模塊34具體用于若所述時間區(qū)間對應(yīng)的I/O請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間;
[0074]在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者
[0075]所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤;
[0076]其中,上述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/O請求的下發(fā)時刻相同。
[0077]需要說明的是,上述各個模塊對應(yīng)執(zhí)行前述各個方法實(shí)施例中的各個步驟,在此不再贅述。
[0078]本發(fā)明實(shí)施例提供的檢測慢盤的處理裝置,通過將預(yù)置檢測時間段的時間長度劃分為多個時間區(qū)間,并向每一個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,從而可以根據(jù)各個時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,準(zhǔn)確的確定慢盤,充分考慮了 I/O請求數(shù)量與I/O延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/O請求的分布規(guī)律,從而準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響,以提高設(shè)備的性能。
[0079]圖4為本發(fā)明檢測慢盤的處理裝置實(shí)施例二的結(jié)構(gòu)圖。如圖4所示,該裝置具體用于執(zhí)行前述各個方法實(shí)施例中的各個步驟,具體該裝置包括:
[0080]存儲器41,用于存儲數(shù)據(jù)信息,該數(shù)據(jù)信息包括從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/o請求的I/O延遲;
[0081 ] 處理器42,用于根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的;
[0082]處理器42,用于在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/O請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量;
[0083]處理器42,用于根據(jù)各個所述時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
[0084]進(jìn)一步的,上述處理器42具體用于比較所述I/O請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn);
[0085]若所述I/O請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間。
[0086]進(jìn)一步的,處理器42具體用于若所述時間區(qū)間對應(yīng)的I/O請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間;
[0087]在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者
[0088]所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤;
[0089]詳細(xì)的,所述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/O請求的下發(fā)時刻相同。
[0090]本發(fā)明實(shí)施例提供的檢測慢盤的處理裝置,通過將預(yù)置檢測時間段的時間長度劃分為多個時間區(qū)間,并向每一個時間區(qū)間設(shè)置了預(yù)設(shè)閾值,從而可以根據(jù)各個時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,準(zhǔn)確的確定慢盤,充分考慮了 I/O請求數(shù)量與I/o延遲的關(guān)聯(lián)關(guān)系,即在時間范疇上考慮了 I/O請求的分布規(guī)律,從而準(zhǔn)確的檢測出慢盤并移除該慢盤,避免慢盤對業(yè)務(wù)的處理造成不良影響,以提高設(shè)備的性能。
[0091]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0092]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種檢測慢盤的處理方法,其特征在于,包括: 從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/o請求的I/O延遲;根據(jù)各個所述I/o請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的; 在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/o請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量; 根據(jù)各個所述時間區(qū)間對應(yīng)的I/O請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
2.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述根據(jù)各個所述I/O請求的I/O延遲,確定各個所述I/o請求與所述預(yù)置檢測時間段內(nèi)的各個時間區(qū)間的對應(yīng)關(guān)系,包括: 比較所述I/o請求的I/O延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn); 若所述I/o請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/o請求對應(yīng)于所述第一時間區(qū)間。
3.根據(jù)權(quán)利要求2所述的處理方法,其特征在于,所述根據(jù)各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤,包括: 若所述時間區(qū)間對應(yīng)的I/o請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間; 在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者 所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤。
4.根據(jù)權(quán)利要求1~3任一項所述的處理方法,其特征在于,所述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/O請求的下發(fā)時刻相同。
5.一種檢測慢盤的處理裝置,其特征在于,包括: 獲取模塊,用于從預(yù)置檢測時間段的起始時刻開始獲取硬盤上各個輸入/輸出I/O請求的I/o延遲; 第一確定模塊,用于根據(jù)各個所述I/o請求的I/O延遲,確定各個所述I/O請求與各個時間區(qū)間的對應(yīng)關(guān)系;所述各個時間區(qū)間是將所述預(yù)置檢測時間段的時間長度劃分為多個區(qū)間得到的; 第二確定模塊,用于在所述預(yù)置檢測時間段的結(jié)束時刻,根據(jù)各個所述I/o請求與各個所述時間區(qū)間的對應(yīng)關(guān)系,確定各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量; 第三確定模塊,用于根據(jù)各個所述時間區(qū)間對應(yīng)的I/o請求數(shù)量和各個所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,確定所述硬盤為慢盤。
6.根據(jù)權(quán)利要求5所述的處理裝置,其特征在于,第一確定模塊具體用于比較所述I/O請求的I/o延遲與各個所述時間區(qū)間的起點(diǎn)和終點(diǎn); 若所述I/o請求的I/O延遲大于所述各個所述時間區(qū)間內(nèi)第一時間區(qū)間的起點(diǎn),并小于所述第一時間區(qū)間的終點(diǎn),則確定所述I/O請求對應(yīng)于所述第一時間區(qū)間。
7.根據(jù)權(quán)利要求6所述的處理裝置,其特征在于,第三確定模塊具體用于若所述時間區(qū)間對應(yīng)的I/o請求數(shù)量大于或等于所述時間區(qū)間對應(yīng)的預(yù)設(shè)閾值,則確定所述時間區(qū)間為超限區(qū)間; 在所述各個時間區(qū)間中,若存在超限區(qū)間,則確定所述硬盤為慢盤;或者所述各個時間區(qū)間中的每一個時間區(qū)間都是所述超限區(qū)間,則確定所述硬盤為慢盤。
8. 根據(jù)權(quán)利要求5~7任一項所述的處理裝置,其特征在于,所述預(yù)置檢測時間段的起始時刻與向所述硬盤下發(fā)各個I/O請求的下發(fā)時刻相同。
【文檔編號】G06F11/00GK103488544SQ201310445133
【公開日】2014年1月1日 申請日期:2013年9月26日 優(yōu)先權(quán)日:2013年9月26日
【發(fā)明者】葉丞, 李元, 毛長生 申請人:華為技術(shù)有限公司