本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法及系統(tǒng)。
背景技術(shù):
當(dāng)前的linux操作系統(tǒng)是一個(gè)通用性的系統(tǒng),系統(tǒng)的運(yùn)行情況會(huì)實(shí)時(shí)發(fā)生變化,在一些運(yùn)行場(chǎng)景下磁盤的讀寫負(fù)載會(huì)非常大,而在某些場(chǎng)景下磁盤的讀寫負(fù)載非常小,但是目前系統(tǒng)的磁盤的設(shè)置是固定的,因此在磁盤讀寫負(fù)載較大時(shí)不能充分地利用磁盤資源,在磁盤讀寫負(fù)載較小時(shí)不能減少磁盤的消耗。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法及系統(tǒng),可以根據(jù)系統(tǒng)當(dāng)前的磁盤的讀寫情況進(jìn)行磁盤的優(yōu)化,無(wú)需人工干預(yù),并能夠進(jìn)行實(shí)時(shí)的優(yōu)化,有很高的靈活性。
為解決上述技術(shù)問題,本發(fā)明提供一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法,包括:
采集當(dāng)前的磁盤讀寫信息;
根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載;
將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別;
根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化。
可選的,采集當(dāng)前的磁盤讀寫信息,包括:
通過sysfs采集當(dāng)前磁盤的讀請(qǐng)求合并數(shù)和寫請(qǐng)求合并數(shù)。
可選的,根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載,包括:
計(jì)算當(dāng)前采集的讀請(qǐng)求合并數(shù)與上一次采集的讀請(qǐng)求合并數(shù)的讀請(qǐng)求合并數(shù)差值,并選取當(dāng)前采集的讀請(qǐng)求合并數(shù)與上一次采集的讀請(qǐng)求合并數(shù)中數(shù)值大的讀請(qǐng)求合并數(shù)作為最大讀請(qǐng)求合并數(shù);
將所述讀請(qǐng)求合并數(shù)差值除以所述最大讀請(qǐng)求合并數(shù)得到當(dāng)前磁盤的讀負(fù)載;
計(jì)算當(dāng)前采集的寫請(qǐng)求合并數(shù)與上一次采集的寫請(qǐng)求合并數(shù)的寫請(qǐng)求合并數(shù)差值,并選取當(dāng)前采集的寫請(qǐng)求合并數(shù)與上一次采集的寫請(qǐng)求合并數(shù)中數(shù)值大的寫請(qǐng)求合并數(shù)作為最大寫請(qǐng)求合并數(shù);
將所述寫請(qǐng)求合并數(shù)差值除以所述最大寫請(qǐng)求合并數(shù)得到當(dāng)前磁盤的寫負(fù)載。
可選的,將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別,包括:
根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài);
判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致;
若是,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別;
若否,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別降低一級(jí)作為所述磁盤的優(yōu)化級(jí)別。
可選的,根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài),包括:
將所述讀負(fù)載和所述寫負(fù)載分別于對(duì)應(yīng)的讀負(fù)載閾值和寫負(fù)載閾值進(jìn)行比較,判斷所述讀負(fù)載和所述寫負(fù)載是否均大于對(duì)應(yīng)的所述讀負(fù)載閾值和所述寫負(fù)載閾值;
若是,則當(dāng)前磁盤的工作狀態(tài)為繁忙狀態(tài);
若否,則當(dāng)前磁盤的工作狀態(tài)為空閑狀態(tài)。
可選的,判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致,包括:
判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否連續(xù)預(yù)定次數(shù)均與當(dāng)前磁盤的工作狀態(tài)一致。
可選的,根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化,包括:
根據(jù)所述優(yōu)化級(jí)別確定對(duì)應(yīng)的驅(qū)動(dòng)時(shí)間參數(shù)和磁盤省電模式參數(shù);
利用所述驅(qū)動(dòng)時(shí)間參數(shù),調(diào)用驅(qū)動(dòng)程序控制所述磁盤的驅(qū)動(dòng)時(shí)間;
利用所述磁盤省電模式參數(shù),調(diào)用能控程序控制所述磁盤的省電模式。
本發(fā)明還提供一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng),包括:
采集模塊,用于采集當(dāng)前的磁盤讀寫信息;
負(fù)載計(jì)算模塊,用于根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載;
優(yōu)化級(jí)別確定模塊,用于將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別;
性能優(yōu)化模塊,用于根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化。
可選的,所述優(yōu)化級(jí)別確定模塊,包括:
當(dāng)前工作狀態(tài)確定單元,用于根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài);
判斷單元,用于判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致;
優(yōu)化級(jí)別確定單元,用于若一致,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別;若不一致,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別降低一級(jí)作為所述磁盤的優(yōu)化級(jí)別。
可選的,所述性能優(yōu)化模塊,包括:
參數(shù)確定單元,用于根據(jù)所述優(yōu)化級(jí)別確定對(duì)應(yīng)的驅(qū)動(dòng)時(shí)間參數(shù)和磁盤省電模式參數(shù);
性能優(yōu)化單元,用于利用所述驅(qū)動(dòng)時(shí)間參數(shù),調(diào)用驅(qū)動(dòng)程序控制所述磁盤的驅(qū)動(dòng)時(shí)間;利用所述磁盤省電模式參數(shù),調(diào)用能控程序控制所述磁盤的省電模式。
本發(fā)明所提供的一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法,包括:采集當(dāng)前的磁盤讀寫信息;根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載;將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別;根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化;
可見,該方法能夠自動(dòng)收集磁盤讀寫負(fù)載信息,自動(dòng)分析磁盤讀寫情況,并根據(jù)磁盤運(yùn)行情況自動(dòng)進(jìn)行磁盤優(yōu)化;即可以根據(jù)系統(tǒng)當(dāng)前的磁盤的讀寫情況進(jìn)行磁盤的優(yōu)化,無(wú)需人工干預(yù),并能夠進(jìn)行實(shí)時(shí)的優(yōu)化,有很高的靈活性;本發(fā)明還提供了一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng),具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法的流程圖;
圖2為本發(fā)明實(shí)施例所提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法及系統(tǒng),可以根據(jù)系統(tǒng)當(dāng)前的磁盤的讀寫情況進(jìn)行磁盤的優(yōu)化,無(wú)需人工干預(yù),并能夠進(jìn)行實(shí)時(shí)的優(yōu)化,有很高的靈活性。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
由于磁盤讀寫負(fù)載比較大的情況下,只有提升磁盤的性能才能夠更加充分地利用磁盤資源,提升系統(tǒng)性能,在磁盤讀寫負(fù)載較小時(shí)則可以調(diào)整磁盤的性能來減少磁盤的消耗。因此本實(shí)施例通過自動(dòng)收集磁盤讀寫負(fù)載信息,自動(dòng)分析磁盤讀寫情況,并根據(jù)磁盤運(yùn)行情況自動(dòng)進(jìn)行磁盤優(yōu)化。具體請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例所提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法的流程圖;該方法可以包括:
S100、采集當(dāng)前的磁盤讀寫信息;
具體的,要進(jìn)行磁盤優(yōu)化必須要知道磁盤的讀寫信息,因此首先要采集磁盤的讀寫信息。由于本實(shí)施例可以動(dòng)態(tài)對(duì)磁盤性能進(jìn)行優(yōu)化。本實(shí)施例中可以實(shí)時(shí)采集當(dāng)前的磁盤讀寫信息;也可以是按照預(yù)設(shè)采集周期進(jìn)行采集(例如兩秒);當(dāng)然為了進(jìn)一步提高用戶對(duì)于磁盤性能優(yōu)化時(shí)間的可選擇性,本實(shí)施例還可以指定進(jìn)行采集磁盤讀寫信息的時(shí)間。例如在每天的忙時(shí)下午2點(diǎn)至5點(diǎn)實(shí)時(shí)或者按照預(yù)設(shè)時(shí)間周期進(jìn)行磁盤讀寫信息的采集。本實(shí)施例對(duì)此并不進(jìn)行限定。
由于僅根據(jù)采集到的一次磁盤讀寫信息就去進(jìn)行磁盤性能優(yōu)化,不能全面表現(xiàn)磁盤當(dāng)前時(shí)段的狀態(tài),因此調(diào)整過程會(huì)出現(xiàn)不準(zhǔn)確的缺點(diǎn)。因此本實(shí)施例磁盤性能優(yōu)化不僅需要關(guān)注采集數(shù)據(jù)的這一刻的磁盤讀寫信息,還需要關(guān)注磁盤讀寫信息的動(dòng)態(tài)變化。因此在采集磁盤讀寫信息時(shí),要記錄磁盤讀寫信息的時(shí)刻,即采集當(dāng)前時(shí)刻下磁盤的磁盤讀寫信息。
又由于在linux操作系統(tǒng)下sysfs是一個(gè)基于內(nèi)存的文件系統(tǒng),它的作用是將內(nèi)核信息以文件的方式提供給用戶程序使用。即可選的,采集當(dāng)前的磁盤讀寫信息可以包括:
通過sysfs采集當(dāng)前磁盤的讀請(qǐng)求合并數(shù)和寫請(qǐng)求合并數(shù)。
具體的,讀取/sys/block/塊設(shè)備/stat文件獲取磁盤當(dāng)前的讀寫請(qǐng)求合并數(shù)。
S110、根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載;
具體的,考量磁盤是否需要進(jìn)行性能優(yōu)化,需要知道磁盤的負(fù)載狀態(tài)。磁盤的負(fù)載狀態(tài)可以通過磁盤的讀負(fù)載和寫負(fù)載進(jìn)行表征。即根據(jù)磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載。本實(shí)施例并不對(duì)磁盤的讀負(fù)載和寫負(fù)載計(jì)算方式進(jìn)行限定。
可選的,根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載可以包括:
計(jì)算當(dāng)前采集的讀請(qǐng)求合并數(shù)與上一次采集的讀請(qǐng)求合并數(shù)的讀請(qǐng)求合并數(shù)差值,并選取當(dāng)前采集的讀請(qǐng)求合并數(shù)與上一次采集的讀請(qǐng)求合并數(shù)中數(shù)值大的讀請(qǐng)求合并數(shù)作為最大讀請(qǐng)求合并數(shù);
將所述讀請(qǐng)求合并數(shù)差值除以所述最大讀請(qǐng)求合并數(shù)得到當(dāng)前磁盤的讀負(fù)載;
計(jì)算當(dāng)前采集的寫請(qǐng)求合并數(shù)與上一次采集的寫請(qǐng)求合并數(shù)的寫請(qǐng)求合并數(shù)差值,并選取當(dāng)前采集的寫請(qǐng)求合并數(shù)與上一次采集的寫請(qǐng)求合并數(shù)中數(shù)值大的寫請(qǐng)求合并數(shù)作為最大寫請(qǐng)求合并數(shù);
將所述寫請(qǐng)求合并數(shù)差值除以所述最大寫請(qǐng)求合并數(shù)得到當(dāng)前磁盤的寫負(fù)載。
具體的,讀/寫負(fù)載=兩次采集的讀/寫請(qǐng)求的合并數(shù)差值/合并數(shù)最大值。
S120、將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別;
具體的,本實(shí)施例中的優(yōu)化級(jí)別不僅與當(dāng)前磁盤的讀負(fù)載和寫負(fù)載有關(guān)(這里的讀負(fù)載和寫負(fù)載可以表征當(dāng)前時(shí)刻磁盤工作狀態(tài)),還與當(dāng)前時(shí)刻的前預(yù)設(shè)時(shí)間內(nèi)磁盤的工作狀態(tài)有關(guān);通過將當(dāng)前時(shí)刻的磁盤的工作狀態(tài)與前預(yù)設(shè)時(shí)間內(nèi)磁盤的工作狀態(tài)綜合起來與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別。這樣得到的磁盤的優(yōu)化級(jí)別可以更加真實(shí)的反應(yīng)磁盤在該段時(shí)間內(nèi)的真實(shí)工作狀態(tài),從而使得后續(xù)進(jìn)行磁盤性能優(yōu)化更加可靠,準(zhǔn)確。這里預(yù)設(shè)優(yōu)化條件可以由用戶根據(jù)實(shí)際情況進(jìn)行確定。例如若當(dāng)前為空閑狀態(tài),且前預(yù)設(shè)時(shí)間內(nèi)磁盤的工作狀態(tài)也為空閑時(shí),可以將磁盤當(dāng)前的優(yōu)化級(jí)別降低,或者將當(dāng)前磁盤的優(yōu)化級(jí)別設(shè)置為低(即磁盤的性能可以低于僅當(dāng)前時(shí)刻磁盤的工作狀態(tài)為空閑時(shí)對(duì)應(yīng)的優(yōu)化級(jí)別)。若當(dāng)前為繁忙狀態(tài),且前預(yù)設(shè)時(shí)間內(nèi)磁盤的工作狀態(tài)也為繁忙時(shí),可以將磁盤當(dāng)前的優(yōu)化級(jí)別升高,或者將當(dāng)前磁盤的優(yōu)化級(jí)別設(shè)置為高(即磁盤的性能可以高于僅當(dāng)前時(shí)刻磁盤的工作狀態(tài)為繁忙時(shí)對(duì)應(yīng)的優(yōu)化級(jí)別)。
即可選的,將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別可以包括:
根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài);
判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致;
若是,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別;
若否,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別降低一級(jí)作為所述磁盤的優(yōu)化級(jí)別。
具體的,這里當(dāng)工作狀態(tài)為繁忙時(shí),若是,則將磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別,意味著磁盤一直都很繁忙,將優(yōu)化級(jí)別提高,增強(qiáng)磁盤性能;(即提高增強(qiáng)磁盤性能的優(yōu)化級(jí)別)。這里當(dāng)工作狀態(tài)為空閑時(shí),若是,則將磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別,意味著磁盤一直都很空閑,將優(yōu)化級(jí)別提高,降低磁盤性能;(即提高增降低盤性能的優(yōu)化級(jí)別)。
即這里的增加一級(jí)和降低一級(jí)都是對(duì)應(yīng)此時(shí)工作狀態(tài)的。繁忙時(shí)增加一級(jí)對(duì)應(yīng)的優(yōu)化級(jí)別意味著更強(qiáng)的增強(qiáng)磁盤性能;空閑時(shí)增加一級(jí)對(duì)應(yīng)的優(yōu)化級(jí)別意味著更強(qiáng)的降低磁盤性能;繁忙時(shí)降低一級(jí)對(duì)應(yīng)的優(yōu)化級(jí)別意味著減弱一級(jí)增強(qiáng)磁盤性能的力度(即在一定程度上降低磁盤性能);空閑時(shí)降低一級(jí)對(duì)應(yīng)的優(yōu)化級(jí)別意味著減弱一級(jí)降低磁盤性能的力度(即在一定程度上提高磁盤性能)。
本實(shí)施例中并不限定根據(jù)當(dāng)前磁盤的讀負(fù)載和寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài)的方式。例如可以通過設(shè)定對(duì)應(yīng)閾值進(jìn)行比較,并設(shè)定對(duì)應(yīng)的比較結(jié)果表示的磁盤的工作狀態(tài)。例如當(dāng)磁盤的讀/寫負(fù)載有一個(gè)小于指定的閥值時(shí)(這里的閾值可以是兩個(gè)即寫負(fù)載對(duì)應(yīng)的寫負(fù)載閾值和讀負(fù)載對(duì)應(yīng)的讀負(fù)載閾值;這里的閾值也可以是一個(gè)即寫負(fù)載和讀負(fù)載對(duì)應(yīng)一個(gè)閾值),則認(rèn)為磁盤的負(fù)載較低。當(dāng)磁盤的讀/寫負(fù)載均小于指定的閥值時(shí),則認(rèn)為磁盤的負(fù)載較低。
本實(shí)施例中前預(yù)設(shè)時(shí)間內(nèi)可以利用采集次數(shù)表示,因?yàn)槊坎杉淮未疟P讀寫信息都可以得到當(dāng)時(shí)的磁盤工作狀態(tài),因此可以采集次數(shù)表示前預(yù)設(shè)時(shí)間(例如當(dāng)前的前6次對(duì)應(yīng)的磁盤工作狀態(tài))。也可以就利用預(yù)設(shè)時(shí)間進(jìn)行表示(例如1分鐘內(nèi))。本實(shí)施例對(duì)比并不進(jìn)行限定。
通過舉例說明上述磁盤吞吐量分析過程:
分析采集的當(dāng)前磁盤讀寫信息,分別計(jì)算磁盤當(dāng)前的讀寫負(fù)載,當(dāng)磁盤的讀負(fù)載或?qū)懾?fù)載有一個(gè)小于指定的閥值時(shí),則認(rèn)為磁盤的負(fù)載較低,如果連續(xù)一段時(shí)間磁盤負(fù)載較低則將優(yōu)化級(jí)別提升一級(jí),并根據(jù)該級(jí)別進(jìn)行磁盤設(shè)置,使磁盤性能進(jìn)行一定的降低,從而節(jié)約系統(tǒng)資源,當(dāng)磁盤的讀、寫負(fù)載都大于指定的閥值時(shí)則認(rèn)為磁盤負(fù)載較大,則將優(yōu)化級(jí)別減小一級(jí),并根據(jù)該級(jí)別進(jìn)行磁盤設(shè)置,使磁盤性能達(dá)到最優(yōu)狀態(tài),更快的完成相關(guān)處理。
或者當(dāng)讀寫負(fù)載都小于0.01時(shí),標(biāo)記磁盤為空閑狀態(tài);當(dāng)磁盤連續(xù)6次都為空閑狀態(tài)時(shí)認(rèn)為磁盤性能需要降低,并將優(yōu)化級(jí)別增加一級(jí),否則認(rèn)為磁盤性能需要提升,將優(yōu)化級(jí)別降低一級(jí)。
S130、根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化。
具體的,為每一個(gè)優(yōu)化級(jí)別設(shè)置一組相對(duì)應(yīng)的優(yōu)化參數(shù),根據(jù)優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)Υ疟P進(jìn)行性能優(yōu)化。這里并不限定具體的優(yōu)化參數(shù)的內(nèi)容,例如可以是驅(qū)動(dòng)時(shí)間,省電模塊等。
優(yōu)選的,根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化可以包括:
根據(jù)所述優(yōu)化級(jí)別確定對(duì)應(yīng)的驅(qū)動(dòng)時(shí)間參數(shù)和磁盤省電模式參數(shù);
利用所述驅(qū)動(dòng)時(shí)間參數(shù),調(diào)用驅(qū)動(dòng)程序控制所述磁盤的驅(qū)動(dòng)時(shí)間;
利用所述磁盤省電模式參數(shù),調(diào)用能控程序控制所述磁盤的省電模式。
具體的,如果磁盤性能需要降低,根據(jù)設(shè)置的優(yōu)化級(jí)別,減少驅(qū)動(dòng)超時(shí)時(shí)間,從而降低磁盤的功耗,設(shè)置磁盤省電模式,使磁盤盡量的省電;如果磁盤性能需要提升,則根據(jù)設(shè)置的優(yōu)化級(jí)來增加驅(qū)動(dòng)超時(shí)時(shí)間,提升磁盤性能,設(shè)置磁盤省電模式,使磁盤減少省電提升磁盤性能。
下面通過運(yùn)行場(chǎng)景優(yōu)化過程說明上述步驟:
首先,如果磁盤性能需要降低,則根據(jù)設(shè)置的優(yōu)化級(jí)別獲取優(yōu)化參數(shù),使用hdparam-S[參數(shù)](即驅(qū)動(dòng)時(shí)間參數(shù))來減少驅(qū)動(dòng)超時(shí)時(shí)間,從而降低磁盤的功耗,使用hdparam-B[參數(shù)](即磁盤省電模式參數(shù))設(shè)置磁盤省電模式,使磁盤盡量的省電;
其次,如果磁盤性能需要提升,則根據(jù)設(shè)置的優(yōu)化級(jí)別獲取優(yōu)化參數(shù),使用hdparam-S[參數(shù)]來增加驅(qū)動(dòng)超時(shí)時(shí)間,提升磁盤性能,使用hdparam-B[參數(shù)]設(shè)置磁盤省電模式,使磁盤減少省電提升磁盤性能。盡快的進(jìn)行數(shù)據(jù)的讀寫處理。
即在用戶態(tài)對(duì)磁盤讀寫信息進(jìn)行統(tǒng)計(jì),分析并確定相對(duì)應(yīng)的策略,最終在用戶態(tài)對(duì)磁盤進(jìn)行性能優(yōu)化。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法,能夠?qū)崿F(xiàn)磁盤的自動(dòng)優(yōu)化,能夠根據(jù)磁盤的讀寫情況,自動(dòng)判斷磁盤設(shè)置是否需要調(diào)整,并匹配相應(yīng)的優(yōu)化策略進(jìn)行磁盤性能的優(yōu)化。首先該方案會(huì)通過sysfs獲取到磁盤的讀寫情況,然后分析收集到的信息,根據(jù)磁盤的讀寫情況判斷當(dāng)前的系統(tǒng)是否需要進(jìn)行磁盤性能優(yōu)化,并匹配對(duì)應(yīng)的優(yōu)化策略進(jìn)行優(yōu)化。
基于上述實(shí)施例,本實(shí)施例中根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài)可以包括:
將所述讀負(fù)載和所述寫負(fù)載分別于對(duì)應(yīng)的讀負(fù)載閾值和寫負(fù)載閾值進(jìn)行比較,判斷所述讀負(fù)載和所述寫負(fù)載是否均大于對(duì)應(yīng)的所述讀負(fù)載閾值和所述寫負(fù)載閾值;
若是,則當(dāng)前磁盤的工作狀態(tài)為繁忙狀態(tài);
若否,則當(dāng)前磁盤的工作狀態(tài)為空閑狀態(tài)。
具體的,本實(shí)施例并不對(duì)讀負(fù)載閾值和寫負(fù)載閾值進(jìn)行限定,可以有用戶進(jìn)行確定。例如,當(dāng)讀負(fù)載和寫負(fù)載都大于0.01時(shí),標(biāo)記磁盤為繁忙狀態(tài)。
本實(shí)施例可以將前預(yù)設(shè)時(shí)間利用得到預(yù)定次數(shù)磁盤的工作狀態(tài)對(duì)應(yīng)的時(shí)間來表示,例如得到前6次磁盤的工作狀態(tài)需要花費(fèi)的時(shí)間作為前預(yù)設(shè)時(shí)間。即可選的,判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致可以包括:
判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否連續(xù)預(yù)定次數(shù)均與當(dāng)前磁盤的工作狀態(tài)一致。
例如前6次磁盤的工作狀態(tài)是否均與當(dāng)前磁盤的工作狀態(tài)一致。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法,相比于通用性的linux系統(tǒng),針對(duì)于不同的磁盤讀寫負(fù)載,進(jìn)行針對(duì)性的優(yōu)化,不僅可以提高系統(tǒng)性能還可以節(jié)約系統(tǒng)資源,并且磁盤讀寫負(fù)載是動(dòng)態(tài)變化的,現(xiàn)有技術(shù)中如果想進(jìn)行磁盤性能優(yōu)化需要進(jìn)行人工判斷并在用戶態(tài)進(jìn)行手動(dòng)設(shè)置,而該方法則自動(dòng)根據(jù)磁盤讀寫情況的變化進(jìn)行動(dòng)態(tài)的優(yōu)化,相比于人工判斷后進(jìn)行手動(dòng)優(yōu)化,該方法完全無(wú)需人工干預(yù),大大提升了優(yōu)化效率。
下面對(duì)本發(fā)明實(shí)施例提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng)進(jìn)行介紹,下文描述的基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng)與上文描述的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法可相互對(duì)應(yīng)參照。
請(qǐng)參考圖2,圖2為本發(fā)明實(shí)施例所提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化系統(tǒng)的結(jié)構(gòu)框圖;該系統(tǒng)可以包括:
采集模塊100,用于采集當(dāng)前的磁盤讀寫信息;
負(fù)載計(jì)算模塊200,用于根據(jù)所述磁盤讀寫信息計(jì)算當(dāng)前磁盤的讀負(fù)載和寫負(fù)載;
優(yōu)化級(jí)別確定模塊300,用于將所述讀負(fù)載和所述寫負(fù)載以及前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài),與預(yù)設(shè)優(yōu)化條件進(jìn)行比較,確定所述磁盤的優(yōu)化級(jí)別;
性能優(yōu)化模塊400,用于根據(jù)所述優(yōu)化級(jí)別對(duì)應(yīng)的優(yōu)化參數(shù),調(diào)用優(yōu)化程序?qū)λ龃疟P進(jìn)行性能優(yōu)化。
基于上述實(shí)施例,所述優(yōu)化級(jí)別確定模塊300包括:
當(dāng)前工作狀態(tài)確定單元,用于根據(jù)當(dāng)前磁盤的所述讀負(fù)載和所述寫負(fù)載確定當(dāng)前磁盤的工作狀態(tài);
判斷單元,用于判斷前預(yù)設(shè)時(shí)間內(nèi)所述磁盤的工作狀態(tài)是否與當(dāng)前磁盤的工作狀態(tài)一致;
優(yōu)化級(jí)別確定單元,用于若一致,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別增加一級(jí)作為所述磁盤的優(yōu)化級(jí)別;若不一致,則將所述磁盤對(duì)應(yīng)的優(yōu)化級(jí)別降低一級(jí)作為所述磁盤的優(yōu)化級(jí)別。
基于上述實(shí)施例,所述性能優(yōu)化模塊400包括:
參數(shù)確定單元,用于根據(jù)所述優(yōu)化級(jí)別確定對(duì)應(yīng)的驅(qū)動(dòng)時(shí)間參數(shù)和磁盤省電模式參數(shù);
性能優(yōu)化單元,用于利用所述驅(qū)動(dòng)時(shí)間參數(shù),調(diào)用驅(qū)動(dòng)程序控制所述磁盤的驅(qū)動(dòng)時(shí)間;利用所述磁盤省電模式參數(shù),調(diào)用能控程序控制所述磁盤的省電模式。
說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上對(duì)本發(fā)明所提供的基于linux操作系統(tǒng)的磁盤性能優(yōu)化方法及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。