本發(fā)明涉及分布式文件系統(tǒng)中的小文件存儲方法
技術領域:
,特別涉及一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)及方法。
背景技術:
:隨著互聯(lián)網(wǎng)技術的不斷發(fā)展,互聯(lián)網(wǎng)上充斥著各式各樣的服務和海量數(shù)據(jù)信息。為了能夠更好地組織和管理這些海量數(shù)據(jù),目前已提出了各種類型的分布式文件系統(tǒng)結構。由于互聯(lián)網(wǎng)上的數(shù)據(jù)信息大多以高頻率的小文件形式表現(xiàn)出來,而且在一般用戶的信息存儲訪問中,對小文件的存儲訪問較多,因此對互聯(lián)網(wǎng)上高頻率的小文件讀/寫性能的研究有重要的現(xiàn)實意義。在分布式文件系統(tǒng)中,對于大文件,往往采用條帶化技術對文件進行切片,并分發(fā)在多個數(shù)據(jù)服務器上進行存儲,以此來提高用戶對文件訪問的并發(fā)性,從而提高對大文件的訪問性能。而對于小文件(≤64kb),由于其不利于條帶化,所以一般是采用將單個文件存儲在單個數(shù)據(jù)服務器上的策略。但是當小文件的數(shù)量到達一定程度之后,對小文件的大量地重復訪問將會給數(shù)據(jù)服務器帶來性能上的負擔及i/o瓶頸問題。傳統(tǒng)的分布式文件系統(tǒng)在小文件管理上主要存在以下3個方面的問題:1)由于小文件的訪問頻率較高,需要多次訪問磁盤,所以磁盤i/o的性能較低;2)因為文件比較小,容易形成文件碎片而造成磁盤空間的浪費;3)為每個小文件請求建立一個連接時容易產(chǎn)生網(wǎng)絡時延。因此,優(yōu)化小文件的存儲訪問性能至關重要。目前,小文件的優(yōu)化存儲訪問研究主要是針對小文件訪問i/o性能較低和容易形成文件碎片的問題,但沒有考慮其他操作帶來的文件變動問題。其他相關的研究還包括對現(xiàn)有分布式文件系統(tǒng)的優(yōu)化研究和文件傳輸?shù)膬?yōu)化等。但該研究主要用于通用文件的傳輸,還不能最優(yōu)化小文件的傳輸性能。技術實現(xiàn)要素:為了解決現(xiàn)有技術的問題,本發(fā)明提供了一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)及方法,其將邏輯上連續(xù)的數(shù)據(jù)盡可能存儲在物理磁盤的連續(xù)空間,使用cache充當元數(shù)據(jù)服務器的角色并通過簡化的文件信息節(jié)點提高cache利用率,提高了小文件訪問性能;寫數(shù)據(jù)時聚合更新數(shù)據(jù)及其文件夾域中的相關數(shù)據(jù)為一次i/o請求寫入,減少了文件碎片數(shù)量,提高了存儲空間利用率;文件傳輸時利用局部性原理,提前發(fā)送批量的高訪問率的小文件,降低了建立網(wǎng)絡連接開銷,提升了文件傳輸性能。本發(fā)明所采用的所述技術方案如下:一種性能優(yōu)化的小文件存儲訪問的系統(tǒng),包括文件系統(tǒng)接口、文件夾域管理器、文件信息節(jié)點管理器、塊管理器和文件緩沖管理器五個模塊,所述的文件系統(tǒng)接口負責對其他模塊進行封裝,向上層提供靈活統(tǒng)一的文件訪問接口;所述的文件夾域管理器負責對文件夾域進行管理,它負責管理同一個文件夾的各個文件信息節(jié)點和存儲在該文件夾中的所有文件數(shù)據(jù);所述的文件信息節(jié)點管理器負責對文件信息節(jié)點進行理;所述的塊管理器負責對磁盤塊的空間管理,磁盤空間的開辟也是由此模塊負責;所述的文件緩沖管理器負責對文件緩存的管理。在所述的文件信息節(jié)點管理器中,還設定了一個文件信息節(jié)點的緩存器,這個緩存器用于存放最近訪問過的和高頻率訪問的文件信息節(jié)點。一種性能優(yōu)化的小文件存儲訪問的方法,包括:a、將磁盤空間劃分為多個塊,每個塊的大小為64kb,當遇到的文件≤64kb時,則所述的文件只能存放在單個塊中,不能跨越2個塊存放,每個文件數(shù)據(jù)都存放在連續(xù)的磁盤空間上;b、當系統(tǒng)要讀取某一個文件時,采用預讀的方式,將同一個塊中的文件一起讀取出來;c、使用cache充當元數(shù)據(jù)服務器的角色,在cache上保存文件信息節(jié)點的信息,并且通過簡化的inode數(shù)據(jù)結構使每個文件信息節(jié)點只保留文件的磁盤空間信息,所述的inode數(shù)據(jù)結構如下表所示:file_idstartpositionlengthweightblock_idi_countlock其中,folder_id是文件標識符;startpisition是文件在塊中的起始位置;length是文件的長度;wright是文件權重;在本發(fā)明的系統(tǒng)中代表文件的訪問頻率;block_id是文件所存放的塊的標識符;i_clock是文件的訪問計數(shù)器;lock是文件鎖;d、在寫操作時使用優(yōu)化方法來減少由于文件的刪除或者修改而導致的文件碎片;所述的優(yōu)化方法包括更新文件時的寫優(yōu)化方法和創(chuàng)建文件時的寫優(yōu)化方法;e、優(yōu)化文件傳輸?shù)姆椒?,具體是:對每個文件夾,根據(jù)文件夾里的每個文件的訪問頻率形成一個排序列表;當用戶訪問該文件夾里的某個文件時,系統(tǒng)會自動地將這個排序列表里高訪問頻率的文件一起發(fā)送過去。更新文件時的寫優(yōu)化方法具體包括:1)當一個文件的數(shù)據(jù)發(fā)生更新時,則從它開始,把存在于當前塊中并處于它后面的文件,以及從那些零散塊取出文件,聚合在一起,作為單個i/o請求寫入磁盤,所述文件都是存放在cache中;2)如果在當前塊中,存在沒有被放入cache中但是又處于被更新文件之后的文件,此時,并不對其進行聚合寫入;3)當更新后的文件比較大,使得原來塊沒有足夠的空間存放更新后的文件時,則系統(tǒng)會將此文件先讀出再選擇適合的塊進行存放,系統(tǒng)找到一個合適的零散塊,并將更新文件同此零散塊中的文件一起聚合寫入,如果系統(tǒng)找不到合適的零散塊,則會從碎片中找到合適大小的空間進行存放,再采用同樣的機制進行聚合寫入。創(chuàng)建文件時的寫優(yōu)化方法具體包括:1)當創(chuàng)建一個新的文件時,首先在當前文件夾域中尋找合適的零散塊,即剩余空間大小大于新文件大小的零散塊,并且此塊中的所有文件數(shù)據(jù)都在cache中;2)當找不到合適的零散塊時,系統(tǒng)將在此文件夾域中的碎片中尋找合適的碎片空間來寫入,在寫入之前,系統(tǒng)會同時將旁邊已經(jīng)緩存的文件一起聚合再寫入,如果還有足夠空間,還會從零散塊取出適當?shù)奈募硪黄饘懭耄?)當找不到合適的碎片來存放時,則新建一個塊,再將新的文件數(shù)據(jù)寫入。方法e中,為了避免發(fā)送過多的文件,設定一個高訪問頻率的閾值tf,并將所有訪問頻率高于tf的文件順序分成多個組,每個組可能包含多個文件,組中所有文件大小之和不超過64kb,每當用戶請求當前文件夾中的一個文件時,系統(tǒng)會按照順序將一個組的文件一起發(fā)送過去,所述的tf的計算公式如下:tf=n×favg(n≥1);(1)fi為文件夾每個文件的訪問頻率,m為當前文件夾中的文件個數(shù),n由用戶自定義設置。針對當前小文件存儲訪問研究存在的局限性問題,本發(fā)明從小文件存儲訪問結構和數(shù)據(jù)存儲布局出發(fā),提出了一種性能優(yōu)化的小文件存儲訪問(smallfilestorageaccess,sfsa)策略.在sfsa系統(tǒng)設計中,首先提出了一種優(yōu)化的小文件存儲結構,將邏輯上連續(xù)的數(shù)據(jù)盡可能地存放在連續(xù)的磁盤空間上,從而提高預讀數(shù)據(jù)的命中率,減少磁盤尋道時間.其次,通過使用cache充當元數(shù)據(jù)服務器的角色和簡化文件信息節(jié)點的方式減少查找文件節(jié)點信息的開銷,從而提高i/o性能.另外,對寫操作進行了優(yōu)化,減少了由于文件刪除或修改產(chǎn)生的文件碎片.最后采用局部性原理,提出了一種“提前發(fā)送批量高頻率訪問”的文件傳輸策略來減少小文件的傳輸時延。本發(fā)明提供的技術方案帶來的有益效果是:本發(fā)明針對目前分布式系統(tǒng)在小文件管理上存在的問題,提出了一種性能優(yōu)化的小文件存儲系統(tǒng)訪問(sfsa)方法,sfsa系統(tǒng)既可提高小文件的訪問性能,也可提高磁盤空間的利用率;另外,根據(jù)局部性原理,本發(fā)明采用了“提前發(fā)送批量高頻率訪問文件”的方法,因此它也能夠優(yōu)化文件的傳輸性能。通過實驗驗證,本發(fā)明提出的方法能有效的優(yōu)化小文件的存儲訪問性能。附圖說明為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)結構圖;圖2為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)的小文件存儲示例圖;圖3為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)的同文件夾中的文件存儲示例圖;圖4為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)的文件夾域的數(shù)據(jù)結構圖;圖5為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)的簡化后的inode數(shù)據(jù)結構圖;圖6為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的方法的更新文件時的寫優(yōu)化方法原理圖;圖7為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的方法的更新文件時的寫優(yōu)化方法示例圖;圖8為本發(fā)明的一種性能優(yōu)化的小文件存儲訪問的方法的創(chuàng)建文件時的寫優(yōu)化方法原理圖;圖9為磁盤i/o性能優(yōu)化前后服務器平均響應時間的比較示意圖;圖10為寫優(yōu)化前后磁盤空間利用率的比較效果圖;圖11為文件傳輸優(yōu)化前后平均文件傳輸時延的比較效果圖。具體實施方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。本實施例的一種性能優(yōu)化的小文件存儲訪問的系統(tǒng)(sfsa系統(tǒng))的結構如圖1所示。該系統(tǒng)主要包括文件系統(tǒng)接口(failsysteminterface,fsi)、文件夾域管理器(folderdomainmanager,fdm)、文件信息節(jié)點管理器(inodemanager,im)、塊管理器(blockmanager,bm)和文件緩沖管理器(filecachemanager,fcm)5個模塊。fsi負責對其他模塊進行封裝,向上層提供靈活統(tǒng)一的文件訪問接口。fdm負責對文件夾域(folderdomain,id)進行管理。它負責管理同一個文件夾的各個文件信息節(jié)點和存儲在該文件夾中的所有文件數(shù)據(jù)的blockid等.im負責對文件信息節(jié)點進行理。在這個管理器中,還設定了一個文件信息節(jié)點的緩存器。這個緩存器主要用于存放最近訪問過的和高頻率訪問的文件信息節(jié)點。bm負責對磁盤塊的空間管理,磁盤空間的開辟也是由此模塊負責.fcm負責對文件緩存的管理。本實施例中,sfsa系統(tǒng)在存儲小文件時是通過采用開辟大塊的連續(xù)磁盤空間的方式來存儲大量的小文件。首先將磁盤空間劃分為多個塊(block),每個塊的大小為64kb,大文件的連續(xù)磁盤空間就由這一系列的塊所組成。當遇到的文件比較小(定義:當文件的大小≤64kb時,稱為“小文件”)時,則每個小文件只能存放在單個塊中,不能跨越2個塊存放,每個文件數(shù)據(jù)都存放在連續(xù)的磁盤空間上。如附圖2,是在一個塊中存放多個小文件的示例圖。圖2中,f1,f2,f3,f4和f5為5個文件,文件與文件之間連續(xù)存放,如f1與f2,f2與f3,f4與f5。黑色部分為此塊的碎片,當出現(xiàn)文件的大小小于這些碎片的大小時,應優(yōu)先把文件存放在這些碎片中。為了提高“預讀”數(shù)據(jù)的命中率,sata系統(tǒng)將邏輯上連續(xù)的數(shù)據(jù)盡可能地存儲在物理磁盤的連續(xù)空間上。即將同一個文件的數(shù)據(jù)或將同一個文件夾下的文件數(shù)據(jù)盡可能地存儲在連續(xù)的磁盤空間塊上,每一個文件夾將擁有一個或多個塊,這些塊都只存放此文件夾的文件,如圖3所示。fd是sfsa系統(tǒng)中最為重要的數(shù)據(jù)結構,它的設計關系到下面的多個優(yōu)化策略的設計以及實現(xiàn).其數(shù)據(jù)結構如圖4所示:其中,folder_id是文件夾的標識符,系統(tǒng)會為每個文件夾或者文件分配一個獨立的標識符來區(qū)分彼此。scatteredblockidlist和goodblockidlist分別是存放此文件夾中的文件數(shù)據(jù)的2個塊標識符列表。其中scatteredblockidlist存放的是零散塊標識符列表,goodblockidlist存放的是非零散塊標識符列表。這兩個列表可用于磁盤空間碎片的整理。inodelist是對inode的一個排序鏈表,根據(jù)文件的訪問頻率進行排序。它是為了實現(xiàn)優(yōu)化文件傳輸而設計的。f_count是文件夾的訪問計數(shù)器。rwlock是文件訪問的讀寫鎖。通常情況下,分布式文件系統(tǒng)都是把文件的屬性信息(文件信息節(jié)點)存放在元數(shù)據(jù)服務器上,在i/o服務器上,只需要知道文件的磁盤空間信息即可進行訪問。因此在i/o服務器上,只需要記錄文件的磁盤空間信息,而不需要記錄文件的其他屬性,如創(chuàng)建時間、最后訪問時間和所屬用戶等?;诖?,對inode的數(shù)據(jù)結構進行簡化,只保留文件的磁盤空間信息以及屬于它的少量數(shù)據(jù)成員,簡化后的inode的數(shù)據(jù)結構如圖5所示。folder_id是文件標識符。startpisition是文件在塊中的起始位置。length是文件的長度。wright是文件權重。在sfsa系統(tǒng)中代表文件的訪問頻率。block_id是文件所存放的塊的標識符。i_clock是文件的訪問計數(shù)器。lock是文件鎖。本實施例中,優(yōu)化磁盤i/o性能的方法如下:在現(xiàn)代磁盤設備中,讀寫少量數(shù)據(jù)的時延一般主要花在磁頭的尋道定位上。一旦定位好,讀取一個數(shù)據(jù)塊跟讀取連續(xù)幾個數(shù)據(jù)塊的時間相差不是很大。因此,結合上面提出的優(yōu)化的數(shù)據(jù)存儲結構,即把邏輯上連續(xù)的數(shù)據(jù)盡可能地存儲在物理磁盤的連續(xù)空間上。根據(jù)局部性原理,當系統(tǒng)要讀取某一個文件時,采用預讀的方式,將同一個塊中的文件一起讀取出來,從而減少磁盤i/o的次數(shù)。下面給出一種預讀的調度算法:算法1.預讀調度算法readfiled(file_id)。①if(isccahe(file_id))returnfilebuffer(file_id);/*如果當前文件存在cache中,則直接返回cache中的文件數(shù)據(jù)*/②block_id=getblockid(file_id);/*通過文件的標識符得到存放當前文件的塊的標識符*/③outstream=readblockdata(block_id);/*讀取該塊的所有數(shù)據(jù)*/④cachefilesbufferfromblock(outstream,block_id);/*緩存此塊中所存儲的所有文件數(shù)據(jù)*/returnfilebuffer(file_id)./*此時文件數(shù)據(jù)已經(jīng)在cache中,直接返回cache中的文件數(shù)據(jù)*/在通常情況下,文件的屬性信息(文件信息節(jié)點)存放在元數(shù)據(jù)服務器上。在i/o服務器上,只需要知道文件的磁盤空間信息即可進行訪問。然而這種情況下元數(shù)據(jù)服務器上的i/o開銷很大,因為需要頻繁訪問元數(shù)據(jù)服務器上的磁盤,所以整個系統(tǒng)的i/o性能較差。在sfsa系統(tǒng)結構中,使用cache充當元數(shù)據(jù)服務器的角色,在cache上保存文件信息節(jié)點的信息。并且通過簡化的inode數(shù)據(jù)結構使每個文件信息節(jié)點只保留文件的磁盤空間信息以及另外少量有用的信息,從而提高cache的利用率,使cache能夠保存大量的文件信息節(jié)點。通過這種方式,減少訪問磁盤的次數(shù)和讀取文件信息節(jié)點的開銷。本實施例中,減少磁盤碎片空間浪費的寫優(yōu)化方法如下:一般分布式文件系統(tǒng)經(jīng)過大量的刪除文件和修改文件請求之后,在小文件之間可能會產(chǎn)生大量的文件碎片,而這些碎片很難重新利用起來,這同樣也會導致大量磁盤空間的浪費.針對上述問題,在sfsa系統(tǒng)中對寫操作進行優(yōu)化處理.即:在寫操作時使用優(yōu)化策略來減少由于文件的刪除或者修改而導致的文件碎片問題。出現(xiàn)寫操作主要有2種情況,分別是更新文件和創(chuàng)建文件。1)更新文件時的寫優(yōu)化方法:如附圖6所示,為更新文件時的寫優(yōu)化整體思路:當某個文件夾域中出現(xiàn)文件數(shù)據(jù),如圖6中f3,將聚合此文件夾域中的相關文件,并作為單獨的一次i/o請求寫入磁盤中,從而減少文件與文件之間的碎片。以下是更為具體的解決方案,如圖7所示。①當一個文件的數(shù)據(jù)(f3)發(fā)生更新時,則從它開始,把存在于當前塊中并處于它后面的文件,以及從那些零散塊取出適合的文件,聚合在一起,作為單個i/o請求寫入磁盤,如圖7(a)所示。注意這些文件都是存放在cache中。②如果在當前塊中,存在沒有被放入cache中但是又處于被更新文件之后的文件,如圖7(b)的f5。此時,并不對f5進行聚合寫入,所以能一次性寫入的文件長度是從f3起始地址到f5起始地址。③在情況①②中,都是文件更新后在原來塊中有足夠的空間存放的情況,然而當更新后的文件比較大,使得原來塊沒有足夠的空間存放更新后的文件時,則系統(tǒng)會將此文件先讀出再選擇適合的塊進行存放。如圖7所示。圖7(c)表示,系統(tǒng)找到一個合適的零散塊,并將更新文件同此零散塊中的文件一起聚合寫入。如果系統(tǒng)找不到合適的零散塊,則會從碎片中找到合適大小的空間進行存放,再采用同樣的機制進行聚合寫入。2)、創(chuàng)建文件時的寫優(yōu)化方法如下:如圖8所示:①當創(chuàng)建一個新的文件時,首先在當前文件夾域中尋找合適的零散塊,即剩余空間大小大于新文件大小的零散塊,并且此塊中的所有文件數(shù)據(jù)都在cache中,如圖8(a)所示。③當找不到合適的零散塊時,系統(tǒng)將在此文件夾域中的碎片中尋找合適的碎片空間來寫入。在寫入之前,系統(tǒng)會同時將旁邊已經(jīng)緩存的文件一起聚合再寫入,如圖8(b)所示。如果還有足夠空間,還會從零散塊取出適當?shù)奈募硪黄饘懭耄鐖D8(c)所示。④當找不到合適的碎片來存放時,則新建一個塊,再將新的文件數(shù)據(jù)寫入。以上優(yōu)化方法采用的是類似dfs的碎片整理策略,這里所不同的是本文組織管理的基本單元是可變長的整個文件,而不像dfs中是固定大小的文件塊。本實施例中,優(yōu)化文件傳輸?shù)姆椒ㄈ缦拢涸诜植际较到y(tǒng)中,小文件往往不利于條帶化,只能將整個文件存放在單個數(shù)據(jù)服務器上.當用戶請求一個小文件時,系統(tǒng)在用戶和對應的數(shù)據(jù)服務器之間建立tcp連接,再向用戶傳輸文件數(shù)據(jù),最后關閉連接。由于建立tcp連接需要3次握手,從而增加了文件傳輸?shù)臅r延。目前一些分布式系統(tǒng)采用保持連接的方式。但在有大量用戶提出請求的情況下,為每個用戶都保持連接將給系統(tǒng)帶來資源上的負擔及浪費。因此,對每個文件夾,根據(jù)文件夾里的每個文件的訪問頻率形成一個排序列表。當用戶訪問該文件夾里的某個文件時,系統(tǒng)會自動地將這個列表里高訪問頻率的文件一起發(fā)送過去。但為了避免發(fā)送過多的文件,設定一個高訪問頻率的閾值tf,并將所有訪問頻率高于tf的文件順序分成多個組,每個組可能包含多個文件,組中所有文件大小之和不超過64kb。每當用戶請求當前文件夾中的一個文件時,系統(tǒng)會按照順序將一個組的文件一起發(fā)送過去,從而降低文件傳輸時延.tf的計算公式如下:tf=n×favg(n≥1):(1)fi為文件夾每個文件的訪問頻率,m為當前文件夾中的文件個數(shù),n由用戶自定義設置。因此,根據(jù)局部性原理,本實施例提出一種“提前發(fā)送批量高頻率訪問文件”的方法,其算法描述如下:sendfile(reqfileid).1.folder_id=getfolderid(reqfileid);/*通過請求文件的標識符獲取其所在文件夾的標識符*/2.reqfilebuffer=readfile(reqfileid);/*讀取請求文件數(shù)據(jù)*/3.batchfilesbuffer=gethighfreqbatchfilesbuffer(folder_id);/*獲取批量高頻率文件數(shù)據(jù)*/4.sendtoclient(reqfilebuffer+batchreqfilebuffer);/*把請求文件數(shù)據(jù)以及批量高頻率文件數(shù)據(jù)一起發(fā)送給用戶*/當用戶請求一個文件夾中的一個文件時,同時把此文件夾中的高訪問頻率文件發(fā)送過去,每次只發(fā)送一部分文件,這部分文件的總字節(jié)數(shù)不能超過64kb.設置為64kb是考慮該傳輸大小給用戶帶來的傳輸延遲較小。為了檢驗本實施例中sfsa系統(tǒng)的實際效果,在實驗室環(huán)境下進行了大量的仿真實驗。實驗主要驗證和分析了3個優(yōu)化策略的效果。實驗環(huán)境為:5臺pc機組成實驗系統(tǒng)。pc機的配置為p42.6ghz的處理器,1gb的內存,節(jié)點間以100mbps以太網(wǎng)相連。1、對于磁盤i/o性能優(yōu)化的測試:以2臺pc機作為2種形式的服務器,一臺沒有做i/o優(yōu)化處理,另外一臺進行了i/o優(yōu)化處理.使用3臺pc機作為客戶端.客戶端不斷地向2臺服務器發(fā)送讀文件請求,服務器接收數(shù)據(jù)并處理請求,同時在服務器端采集相應的實驗數(shù)據(jù).在實驗環(huán)境中,在服務器上放置大約20個文件夾,每個文件夾平均放置100個文件。圖9所示為磁盤i/o性能優(yōu)化前后服務器平均響應時間的比較。從圖9可以看出,磁盤i/o優(yōu)化后,性能得到了明顯的提升,比優(yōu)化前提升了約34.7%。2、寫性能優(yōu)化的測試:在本實驗中,設定系統(tǒng)中存放著200個文件,圖10是寫優(yōu)化前后磁盤空間利用率的比較效果。從圖10可以看出,初始化時系統(tǒng)的磁盤空間利用率最高,達到95.6%左右。但是系統(tǒng)經(jīng)過一段時間的運行后,由于不斷有文件創(chuàng)建、刪除和更新等文件變動操作,使磁盤空間的利用率有所下降,但是仍然保持在91%左右,相對于沒有優(yōu)化的83.4%,采用本發(fā)明的sfsa系統(tǒng)優(yōu)化方法具有更好的磁盤空間利用率。3、文件傳輸性能優(yōu)化的測試:在本實驗中,根據(jù)一般情況,設置tf表達式中的n值為4。圖11所示為文件傳輸優(yōu)化前后平均文件傳輸時延的比較。從圖11可以看出,當用戶請求同一個文件夾中的文件次數(shù)在10次左右之后,文件傳輸時延得到了較好的改善,跟優(yōu)化前相比,本發(fā)明的sfsa優(yōu)化方法能降低大約14%的網(wǎng)絡延遲。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。當前第1頁12