• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向高效文件訪問的目錄結(jié)構(gòu)優(yōu)化研究

      2014-11-15 20:01:57吳陽馮徑
      軟件工程 2014年11期

      吳陽++馮徑

      摘 要:針對氣象水文應(yīng)用中,大量常規(guī)觀探測報文批量訪問出現(xiàn)的低效問題,研究文件存儲特性,定量分析了目錄級數(shù)和文件數(shù)量對訪問性能的影響,發(fā)現(xiàn)文件數(shù)相對于文件大小,對于系統(tǒng)的訪問效率影響更大,當(dāng)單個目錄下文件數(shù)目過大時,文件存取延時較大,嚴(yán)重影響用戶體驗與服務(wù)性能。根據(jù)NTFS下的實驗數(shù)據(jù),設(shè)計了一種高效的目錄組織方法,優(yōu)化用戶態(tài)文件存儲管理算法。實驗表明,優(yōu)化后的文件目錄結(jié)構(gòu)和組織形式,能極大地提高批量文件的讀取效率,降低20%—73%的訪問延時,改善網(wǎng)絡(luò)環(huán)境下的大規(guī)模文件接收處理效率。

      關(guān)鍵詞:存儲優(yōu)化;讀取效率;目錄結(jié)構(gòu)

      中圖分類號:TP302.7 文獻(xiàn)標(biāo)識碼:A

      1 引言(Introduction)

      隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計算等信息與通信技術(shù)的快速發(fā)展,信息系統(tǒng)中的數(shù)據(jù)量呈幾何級數(shù)增長。據(jù)統(tǒng)計,21世紀(jì)后,人類每18個月產(chǎn)生的數(shù)據(jù)量是之前產(chǎn)生的所有數(shù)據(jù)之和。大量的數(shù)據(jù)一方面為信息的獲取提供了便利,另一方面,也對數(shù)據(jù)存儲技術(shù)提出了更加嚴(yán)峻的挑戰(zhàn)。

      在此背景下,分布式存儲系統(tǒng)應(yīng)運而生,它具有海量數(shù)據(jù)存儲、高擴(kuò)展性、高性能、高可靠性、高可用性的特點,成為當(dāng)今存儲研究與應(yīng)用的熱點。然而,文件系統(tǒng)的主要任務(wù)是管理和完成在外存中存取和搜索文件的操作,并提供透明方便、高效安全的外存應(yīng)用接口,核心算法是確定磁盤或分區(qū)上的文件存儲方法和數(shù)據(jù)結(jié)構(gòu),即在磁盤上組織文件的方法。對于普通計算機(jī)使用者來說,通常無法介入文件系統(tǒng)的核心態(tài)進(jìn)行優(yōu)化和改進(jìn),但可以通過應(yīng)用程序,研究和設(shè)計高效的用戶態(tài)文件存儲管理算法,包括負(fù)載均衡、存儲資源分配、文件索引、目錄結(jié)構(gòu)優(yōu)化等,以改善系統(tǒng)訪問的總體響應(yīng)時間。

      本文分析了現(xiàn)有主流文件系統(tǒng)的存儲特征,分析了影響文件讀取性能的因素,針對氣象水文應(yīng)用中,大量常規(guī)觀探測報文批量訪問出現(xiàn)的低效問題,研究文件存儲特性,通過實驗跟蹤了目錄結(jié)構(gòu)對讀取效率的影響,給出了一種高效訪問文件的方法。

      2 文件系統(tǒng)存儲特征分析(The file system storage

      characteristics analysis)

      文件系統(tǒng)是操作系統(tǒng)的重要組成部分,由與文件管理有關(guān)軟件、被管理文件以及實施文件管理所需數(shù)據(jù)結(jié)構(gòu)三部分組成,根據(jù)系統(tǒng)運行和部署的方式,可分為本地和分布式兩種。

      2.1 本地文件系統(tǒng)

      NTFS(New Technology File System)、FAT(File Allocation Table)、EXT(Extended File System)是當(dāng)今最為廣泛使用的文件系統(tǒng),主要管理本地文件。NTFS和FAT多在WINDOWS操作系統(tǒng)中使用,EXT多在LINUX操作系統(tǒng)中使用。其中,NTFS文件系統(tǒng)所有的數(shù)據(jù),包括系統(tǒng)信息,如引導(dǎo)程序、記錄整個卷的分配狀態(tài)位圖和用于文件定位和恢復(fù)的數(shù)據(jù)結(jié)構(gòu)等都以文件的形式存在,而且文件和目錄是以數(shù)據(jù)庫進(jìn)行組織的。

      NTFS卷中的任何一個文件均由位于MFT表中的文件記錄來完全描述,主控文件表MFT是NTFS中最重要的系統(tǒng)文件,它是一個關(guān)系數(shù)據(jù)庫,由文件記錄的數(shù)組組成,磁盤卷上的每一個文件都有一個文件記錄[1]。

      記錄描述文件的第一個記錄稱為基本文件記錄,如果一個文件無法被一個基本文件記錄完全描述,系統(tǒng)會在MFT表中繼續(xù)為該文件分配一個或多個文件記錄,這些文件記錄稱為擴(kuò)展文件記錄。

      NTFS文件系統(tǒng)中文件夾與它所包含的文件或文件夾的關(guān)系是通過索引來建立的,一個文件夾下文件的索引在父文件夾MFT記錄的0X90屬性或數(shù)據(jù)運行中,一個文件夾下所有文件的索引構(gòu)成一個B+樹的結(jié)構(gòu),這種結(jié)構(gòu)適合快速查找。

      三種典型文件系統(tǒng)的存儲特性比較如表1所示,從中可見,NTFS的所有復(fù)雜度最小,支持的操作系統(tǒng)最多,也是目前應(yīng)用最廣泛的本地文件存儲系統(tǒng),因此本文的實驗部分主要針對NTFS進(jìn)行了研究。

      表1 文件系統(tǒng)存儲特性

      Tab.1 File system storage characteristics

      屬性 NTFS FAT32 EXT2

      簇大小 0.5kB至4kB 4kB至16kB 4kB

      最大大小上限 2TB 4GB 2GB

      最大分區(qū) 2TB 128GB 4TB

      索引結(jié)構(gòu) B+樹 鏈?zhǔn)?鏈?zhǔn)?/p>

      索引復(fù)雜度 O(logN) O(N) O(N)

      支持系統(tǒng) WINDOWS 2000、

      WINDOWS XP DOS、WINDOWS 95

      不支持 LINUX

      2.2 分布式文件系統(tǒng)

      分布式文件系統(tǒng)DSF(Distributed File System)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機(jī)網(wǎng)絡(luò)與節(jié)點相連。HDFS是當(dāng)今最為廣泛使用的分布式文件系統(tǒng),它被設(shè)計成適合運行在通用硬件是一個高度容錯性的系統(tǒng),能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用[2]。

      HDFS主從式的架構(gòu)極大地簡化了分布式文件系統(tǒng)的結(jié)構(gòu),文件系統(tǒng)所能容納的文件數(shù)目取決于控制節(jié)點的內(nèi)存大小[3]。這就導(dǎo)致了HDFS對海量小文件支持不理想,雖然已有技術(shù)通過小文件合并來經(jīng)行優(yōu)化[4],但這一瓶頸始終限制了其在海量小文件存儲中的應(yīng)用。因此HDFS在海量小文件存儲應(yīng)用效率還不是很高。

      3 文件存取效率分析(File access efficiency analysis)

      3.1 影響存取效率的因素

      不同的文件系統(tǒng)采用不同的索引方式進(jìn)行文件定位。在NTFS文件系統(tǒng)中,定位文件步驟由圖1所示。endprint

      圖1 NTFS的文件定位步驟

      Fig.1 NTFS file access process

      設(shè)文件系統(tǒng)定位時間為T1,與文件系統(tǒng)本身有關(guān);遍歷B+樹時間為T2,與B+樹的結(jié)構(gòu)有關(guān);磁盤的控制及訪問時間為T3,與計算機(jī)的硬件性能有關(guān)。一個文件的讀取時間為TS,則

      TS= T1+ T2+T3 (1)

      3.2 讀取效率優(yōu)化方法

      在文件系統(tǒng)與計算機(jī)硬件條件固定的情況下,B+樹的結(jié)構(gòu)對文件的存取效率影響至關(guān)重要。因此,如何減少公式(1)中T2是提高文件檢索效率的關(guān)鍵。

      以NTFS為例,目錄中,文件索引放在父目錄的MFT記錄的0X90屬性中。一個文件的MFT記錄大小為1kB,當(dāng)父目錄下的文件不斷增加而生成新的索引項,父目錄MFT記錄沒有足夠的空間存放時,會按照B+樹的節(jié)點分裂規(guī)則進(jìn)行分裂,產(chǎn)生了兩層的B+目錄結(jié)構(gòu)。當(dāng)文件夾下的文件數(shù)量一直增加到一個臨界點,兩層的B+樹目錄不足以存放所有的索引項時,B+樹第二層的一些節(jié)點會根據(jù)B+樹的分裂規(guī)則分離出葉子節(jié)點,自身變成非葉子節(jié)點,此時變成了三層B+樹結(jié)構(gòu)[5]。

      樹的深度對檢索的效率有著極為關(guān)鍵的影響,理論上,B+樹的層數(shù)越大,檢索文件的所需的遍歷時間將越長,但定量的分析未見文件報道。不同的文件數(shù)量下系統(tǒng)中目錄會產(chǎn)生不同的樹結(jié)構(gòu),從而對對文件的檢索效率產(chǎn)生影響:

      第一層B+樹存放的索引項數(shù)目為:30

      第二層B+樹存放的索引項數(shù)目為:900

      第三層B+樹存放的索引項數(shù)目為:27930

      4 實驗及分析(Experiment and analysis)

      在第3節(jié)中,已討論了讀取效率的影響因素,式(1)中T1與文件系統(tǒng)本身有關(guān),視為定量,為了減少對T2的影響,在實驗中將文件進(jìn)行連續(xù)的寫入以控制T3。因此,通過測量TS,便可間接得到目錄組織結(jié)構(gòu)對T2的影響。

      結(jié)合氣象水文應(yīng)用中,常規(guī)觀探測報文特點,本文對小文件在計算機(jī)中的組織形式對檢索效率的影響進(jìn)行了實驗。將大量的小文件連續(xù)寫入計算機(jī),將其組織在不同的目錄結(jié)構(gòu)中,編程實現(xiàn)了對每個文件的遍歷,遍歷完成后自動記錄時間。

      4.1 實驗環(huán)境

      操作系統(tǒng):Microsoft Windows Server 2003;計算機(jī)系統(tǒng)配置:CPU為Intel(R)、Xeon(R)、1.86GHz,RAM為2.00GB;文件系統(tǒng):NTFS;實驗分區(qū)容量:30GB。

      三層B+樹目錄結(jié)構(gòu)可以存放27930個索引項,滿足一個超大文件夾下文件數(shù)量的要求。當(dāng)索引項超過27930時,會產(chǎn)生四層B+樹結(jié)構(gòu)。因此分別設(shè)計了文件數(shù)為10000和100000的文件檢索實驗,代表了三層與四層B+樹的結(jié)構(gòu),也覆蓋了一般大目錄應(yīng)用的條件。

      4.2 實驗分析

      將1萬個147kB的小文件平均存儲在N個目錄中,并統(tǒng)計其檢索速度,N的值為5、10、20、50、100、200、500、1000。用同樣的方法,我們還研究了10萬個文件時的檢索效率走勢,統(tǒng)計其結(jié)果如圖2所示。

      圖2 文件檢索效率

      Fig.2 File retrieval efficiency

      分析實驗數(shù)據(jù),發(fā)現(xiàn)目錄數(shù)在[20,50]之間時,總體檢索時間處于一個最小值的區(qū)間,因為B+樹在此區(qū)間內(nèi)目錄結(jié)構(gòu)的查找效率已達(dá)到最優(yōu),因此要將目錄數(shù)控制在此范圍內(nèi)才能達(dá)到最優(yōu)的檢索效率。

      通過算法人為設(shè)置最大目錄數(shù),從而改變系統(tǒng)的默認(rèn)。將目錄改進(jìn)后與目錄改進(jìn)前的時間作對比,得到圖3和圖4。

      將本文的方法與普通方法對比可得,1萬個文件時,性能提升了20%,10萬個文件時,性能提升了71.3%。

      綜上所述,改進(jìn)后的目錄在文件讀取上的效率有明顯,特別是在文件數(shù)目較多時,性能有顯著的提升。

      圖3 1萬個文件的檢索時延對比

      Fig.3 Delay contrast of 10000 files

      圖4 10萬個文件的檢索時延對比

      Fig.4 Delay contrast of 100000 files

      5 結(jié)論(Conclusion)

      本文針對大量文件訪問時出現(xiàn)的性能下降問題,對常用的文件系統(tǒng)的存儲方法進(jìn)行研究,發(fā)現(xiàn)不論是集中式存儲還是分布式存儲,最終的讀取效率與本地數(shù)據(jù)文件的存儲結(jié)構(gòu)有很大關(guān)系。在基于文件名檢索的文件系統(tǒng)中,文件數(shù)相對于文件大小,對于系統(tǒng)的訪問效率影響更大。因為,其名字空間的管理隨文件數(shù)量的變化形成數(shù)據(jù)結(jié)構(gòu)上的量變到質(zhì)變,這種變化使得不同操作系統(tǒng)隱含了最佳的目錄數(shù)和單個目錄下存放的文件數(shù)。據(jù)此,以最常用的NTFS文件為對象,通過實驗,定量分析了不同數(shù)量目錄和文件的讀取效率和變化趨勢,得出了一種簡單易行的優(yōu)化方法,有效改善了海量文件存儲訪問的響應(yīng)時間,特別是存在大量小文件的情形。研究結(jié)果對于提高某些應(yīng)用系統(tǒng)性能,特別是自動文件保存和緩沖,如氣象水文觀探測報文的接收處理和批量數(shù)據(jù)交換等,有重要的工程指導(dǎo)意義。下一步將結(jié)合具體應(yīng)用案例,將本文提出的優(yōu)化存儲方法在不同文件系統(tǒng)中進(jìn)行檢驗,并與分布式環(huán)境下的負(fù)載均衡和備份服務(wù)相結(jié)合。

      參考文獻(xiàn)(References)

      [1] 尤晉元,史美林.Windows操作系統(tǒng)原理[M].北京:機(jī)械工業(yè)

      出版社,2001.

      [2] 張春明,芮建武,何婷婷.一種Hadoop小文件存儲和讀取的方

      法[J].計算機(jī)應(yīng)用與軟件,2012,29(11):95-100.

      [3] 趙躍龍,等.一種性能優(yōu)化的小文件存儲訪問策略的研究[J].

      計算機(jī)研究與發(fā)展,2012,49(7):1579-1586.

      [4] Bo Dong,etc.A Novel Approach to Improving the Efficiency

      of Storing and Accessing Small Files on Hadoop:a Case Study by

      PowerPoint Files. 2010 IEEE International Conference on

      Services Computing[R].

      [5] 吳偉民,等.NTFS B+樹大目錄結(jié)構(gòu)動態(tài)解析[J].計算機(jī)工程

      與設(shè)計,2013,34(4):1376-1382.

      作者簡介:

      吳 陽(1989-),男,碩士,學(xué)生.研究領(lǐng)域:信息與通信工程.

      馮 徑(1952-),女,博士,教授.研究領(lǐng)域:系統(tǒng)集成與應(yīng)用.endprint

      圖1 NTFS的文件定位步驟

      Fig.1 NTFS file access process

      設(shè)文件系統(tǒng)定位時間為T1,與文件系統(tǒng)本身有關(guān);遍歷B+樹時間為T2,與B+樹的結(jié)構(gòu)有關(guān);磁盤的控制及訪問時間為T3,與計算機(jī)的硬件性能有關(guān)。一個文件的讀取時間為TS,則

      TS= T1+ T2+T3 (1)

      3.2 讀取效率優(yōu)化方法

      在文件系統(tǒng)與計算機(jī)硬件條件固定的情況下,B+樹的結(jié)構(gòu)對文件的存取效率影響至關(guān)重要。因此,如何減少公式(1)中T2是提高文件檢索效率的關(guān)鍵。

      以NTFS為例,目錄中,文件索引放在父目錄的MFT記錄的0X90屬性中。一個文件的MFT記錄大小為1kB,當(dāng)父目錄下的文件不斷增加而生成新的索引項,父目錄MFT記錄沒有足夠的空間存放時,會按照B+樹的節(jié)點分裂規(guī)則進(jìn)行分裂,產(chǎn)生了兩層的B+目錄結(jié)構(gòu)。當(dāng)文件夾下的文件數(shù)量一直增加到一個臨界點,兩層的B+樹目錄不足以存放所有的索引項時,B+樹第二層的一些節(jié)點會根據(jù)B+樹的分裂規(guī)則分離出葉子節(jié)點,自身變成非葉子節(jié)點,此時變成了三層B+樹結(jié)構(gòu)[5]。

      樹的深度對檢索的效率有著極為關(guān)鍵的影響,理論上,B+樹的層數(shù)越大,檢索文件的所需的遍歷時間將越長,但定量的分析未見文件報道。不同的文件數(shù)量下系統(tǒng)中目錄會產(chǎn)生不同的樹結(jié)構(gòu),從而對對文件的檢索效率產(chǎn)生影響:

      第一層B+樹存放的索引項數(shù)目為:30

      第二層B+樹存放的索引項數(shù)目為:900

      第三層B+樹存放的索引項數(shù)目為:27930

      4 實驗及分析(Experiment and analysis)

      在第3節(jié)中,已討論了讀取效率的影響因素,式(1)中T1與文件系統(tǒng)本身有關(guān),視為定量,為了減少對T2的影響,在實驗中將文件進(jìn)行連續(xù)的寫入以控制T3。因此,通過測量TS,便可間接得到目錄組織結(jié)構(gòu)對T2的影響。

      結(jié)合氣象水文應(yīng)用中,常規(guī)觀探測報文特點,本文對小文件在計算機(jī)中的組織形式對檢索效率的影響進(jìn)行了實驗。將大量的小文件連續(xù)寫入計算機(jī),將其組織在不同的目錄結(jié)構(gòu)中,編程實現(xiàn)了對每個文件的遍歷,遍歷完成后自動記錄時間。

      4.1 實驗環(huán)境

      操作系統(tǒng):Microsoft Windows Server 2003;計算機(jī)系統(tǒng)配置:CPU為Intel(R)、Xeon(R)、1.86GHz,RAM為2.00GB;文件系統(tǒng):NTFS;實驗分區(qū)容量:30GB。

      三層B+樹目錄結(jié)構(gòu)可以存放27930個索引項,滿足一個超大文件夾下文件數(shù)量的要求。當(dāng)索引項超過27930時,會產(chǎn)生四層B+樹結(jié)構(gòu)。因此分別設(shè)計了文件數(shù)為10000和100000的文件檢索實驗,代表了三層與四層B+樹的結(jié)構(gòu),也覆蓋了一般大目錄應(yīng)用的條件。

      4.2 實驗分析

      將1萬個147kB的小文件平均存儲在N個目錄中,并統(tǒng)計其檢索速度,N的值為5、10、20、50、100、200、500、1000。用同樣的方法,我們還研究了10萬個文件時的檢索效率走勢,統(tǒng)計其結(jié)果如圖2所示。

      圖2 文件檢索效率

      Fig.2 File retrieval efficiency

      分析實驗數(shù)據(jù),發(fā)現(xiàn)目錄數(shù)在[20,50]之間時,總體檢索時間處于一個最小值的區(qū)間,因為B+樹在此區(qū)間內(nèi)目錄結(jié)構(gòu)的查找效率已達(dá)到最優(yōu),因此要將目錄數(shù)控制在此范圍內(nèi)才能達(dá)到最優(yōu)的檢索效率。

      通過算法人為設(shè)置最大目錄數(shù),從而改變系統(tǒng)的默認(rèn)。將目錄改進(jìn)后與目錄改進(jìn)前的時間作對比,得到圖3和圖4。

      將本文的方法與普通方法對比可得,1萬個文件時,性能提升了20%,10萬個文件時,性能提升了71.3%。

      綜上所述,改進(jìn)后的目錄在文件讀取上的效率有明顯,特別是在文件數(shù)目較多時,性能有顯著的提升。

      圖3 1萬個文件的檢索時延對比

      Fig.3 Delay contrast of 10000 files

      圖4 10萬個文件的檢索時延對比

      Fig.4 Delay contrast of 100000 files

      5 結(jié)論(Conclusion)

      本文針對大量文件訪問時出現(xiàn)的性能下降問題,對常用的文件系統(tǒng)的存儲方法進(jìn)行研究,發(fā)現(xiàn)不論是集中式存儲還是分布式存儲,最終的讀取效率與本地數(shù)據(jù)文件的存儲結(jié)構(gòu)有很大關(guān)系。在基于文件名檢索的文件系統(tǒng)中,文件數(shù)相對于文件大小,對于系統(tǒng)的訪問效率影響更大。因為,其名字空間的管理隨文件數(shù)量的變化形成數(shù)據(jù)結(jié)構(gòu)上的量變到質(zhì)變,這種變化使得不同操作系統(tǒng)隱含了最佳的目錄數(shù)和單個目錄下存放的文件數(shù)。據(jù)此,以最常用的NTFS文件為對象,通過實驗,定量分析了不同數(shù)量目錄和文件的讀取效率和變化趨勢,得出了一種簡單易行的優(yōu)化方法,有效改善了海量文件存儲訪問的響應(yīng)時間,特別是存在大量小文件的情形。研究結(jié)果對于提高某些應(yīng)用系統(tǒng)性能,特別是自動文件保存和緩沖,如氣象水文觀探測報文的接收處理和批量數(shù)據(jù)交換等,有重要的工程指導(dǎo)意義。下一步將結(jié)合具體應(yīng)用案例,將本文提出的優(yōu)化存儲方法在不同文件系統(tǒng)中進(jìn)行檢驗,并與分布式環(huán)境下的負(fù)載均衡和備份服務(wù)相結(jié)合。

      參考文獻(xiàn)(References)

      [1] 尤晉元,史美林.Windows操作系統(tǒng)原理[M].北京:機(jī)械工業(yè)

      出版社,2001.

      [2] 張春明,芮建武,何婷婷.一種Hadoop小文件存儲和讀取的方

      法[J].計算機(jī)應(yīng)用與軟件,2012,29(11):95-100.

      [3] 趙躍龍,等.一種性能優(yōu)化的小文件存儲訪問策略的研究[J].

      計算機(jī)研究與發(fā)展,2012,49(7):1579-1586.

      [4] Bo Dong,etc.A Novel Approach to Improving the Efficiency

      of Storing and Accessing Small Files on Hadoop:a Case Study by

      PowerPoint Files. 2010 IEEE International Conference on

      Services Computing[R].

      [5] 吳偉民,等.NTFS B+樹大目錄結(jié)構(gòu)動態(tài)解析[J].計算機(jī)工程

      與設(shè)計,2013,34(4):1376-1382.

      作者簡介:

      吳 陽(1989-),男,碩士,學(xué)生.研究領(lǐng)域:信息與通信工程.

      馮 徑(1952-),女,博士,教授.研究領(lǐng)域:系統(tǒng)集成與應(yīng)用.endprint

      圖1 NTFS的文件定位步驟

      Fig.1 NTFS file access process

      設(shè)文件系統(tǒng)定位時間為T1,與文件系統(tǒng)本身有關(guān);遍歷B+樹時間為T2,與B+樹的結(jié)構(gòu)有關(guān);磁盤的控制及訪問時間為T3,與計算機(jī)的硬件性能有關(guān)。一個文件的讀取時間為TS,則

      TS= T1+ T2+T3 (1)

      3.2 讀取效率優(yōu)化方法

      在文件系統(tǒng)與計算機(jī)硬件條件固定的情況下,B+樹的結(jié)構(gòu)對文件的存取效率影響至關(guān)重要。因此,如何減少公式(1)中T2是提高文件檢索效率的關(guān)鍵。

      以NTFS為例,目錄中,文件索引放在父目錄的MFT記錄的0X90屬性中。一個文件的MFT記錄大小為1kB,當(dāng)父目錄下的文件不斷增加而生成新的索引項,父目錄MFT記錄沒有足夠的空間存放時,會按照B+樹的節(jié)點分裂規(guī)則進(jìn)行分裂,產(chǎn)生了兩層的B+目錄結(jié)構(gòu)。當(dāng)文件夾下的文件數(shù)量一直增加到一個臨界點,兩層的B+樹目錄不足以存放所有的索引項時,B+樹第二層的一些節(jié)點會根據(jù)B+樹的分裂規(guī)則分離出葉子節(jié)點,自身變成非葉子節(jié)點,此時變成了三層B+樹結(jié)構(gòu)[5]。

      樹的深度對檢索的效率有著極為關(guān)鍵的影響,理論上,B+樹的層數(shù)越大,檢索文件的所需的遍歷時間將越長,但定量的分析未見文件報道。不同的文件數(shù)量下系統(tǒng)中目錄會產(chǎn)生不同的樹結(jié)構(gòu),從而對對文件的檢索效率產(chǎn)生影響:

      第一層B+樹存放的索引項數(shù)目為:30

      第二層B+樹存放的索引項數(shù)目為:900

      第三層B+樹存放的索引項數(shù)目為:27930

      4 實驗及分析(Experiment and analysis)

      在第3節(jié)中,已討論了讀取效率的影響因素,式(1)中T1與文件系統(tǒng)本身有關(guān),視為定量,為了減少對T2的影響,在實驗中將文件進(jìn)行連續(xù)的寫入以控制T3。因此,通過測量TS,便可間接得到目錄組織結(jié)構(gòu)對T2的影響。

      結(jié)合氣象水文應(yīng)用中,常規(guī)觀探測報文特點,本文對小文件在計算機(jī)中的組織形式對檢索效率的影響進(jìn)行了實驗。將大量的小文件連續(xù)寫入計算機(jī),將其組織在不同的目錄結(jié)構(gòu)中,編程實現(xiàn)了對每個文件的遍歷,遍歷完成后自動記錄時間。

      4.1 實驗環(huán)境

      操作系統(tǒng):Microsoft Windows Server 2003;計算機(jī)系統(tǒng)配置:CPU為Intel(R)、Xeon(R)、1.86GHz,RAM為2.00GB;文件系統(tǒng):NTFS;實驗分區(qū)容量:30GB。

      三層B+樹目錄結(jié)構(gòu)可以存放27930個索引項,滿足一個超大文件夾下文件數(shù)量的要求。當(dāng)索引項超過27930時,會產(chǎn)生四層B+樹結(jié)構(gòu)。因此分別設(shè)計了文件數(shù)為10000和100000的文件檢索實驗,代表了三層與四層B+樹的結(jié)構(gòu),也覆蓋了一般大目錄應(yīng)用的條件。

      4.2 實驗分析

      將1萬個147kB的小文件平均存儲在N個目錄中,并統(tǒng)計其檢索速度,N的值為5、10、20、50、100、200、500、1000。用同樣的方法,我們還研究了10萬個文件時的檢索效率走勢,統(tǒng)計其結(jié)果如圖2所示。

      圖2 文件檢索效率

      Fig.2 File retrieval efficiency

      分析實驗數(shù)據(jù),發(fā)現(xiàn)目錄數(shù)在[20,50]之間時,總體檢索時間處于一個最小值的區(qū)間,因為B+樹在此區(qū)間內(nèi)目錄結(jié)構(gòu)的查找效率已達(dá)到最優(yōu),因此要將目錄數(shù)控制在此范圍內(nèi)才能達(dá)到最優(yōu)的檢索效率。

      通過算法人為設(shè)置最大目錄數(shù),從而改變系統(tǒng)的默認(rèn)。將目錄改進(jìn)后與目錄改進(jìn)前的時間作對比,得到圖3和圖4。

      將本文的方法與普通方法對比可得,1萬個文件時,性能提升了20%,10萬個文件時,性能提升了71.3%。

      綜上所述,改進(jìn)后的目錄在文件讀取上的效率有明顯,特別是在文件數(shù)目較多時,性能有顯著的提升。

      圖3 1萬個文件的檢索時延對比

      Fig.3 Delay contrast of 10000 files

      圖4 10萬個文件的檢索時延對比

      Fig.4 Delay contrast of 100000 files

      5 結(jié)論(Conclusion)

      本文針對大量文件訪問時出現(xiàn)的性能下降問題,對常用的文件系統(tǒng)的存儲方法進(jìn)行研究,發(fā)現(xiàn)不論是集中式存儲還是分布式存儲,最終的讀取效率與本地數(shù)據(jù)文件的存儲結(jié)構(gòu)有很大關(guān)系。在基于文件名檢索的文件系統(tǒng)中,文件數(shù)相對于文件大小,對于系統(tǒng)的訪問效率影響更大。因為,其名字空間的管理隨文件數(shù)量的變化形成數(shù)據(jù)結(jié)構(gòu)上的量變到質(zhì)變,這種變化使得不同操作系統(tǒng)隱含了最佳的目錄數(shù)和單個目錄下存放的文件數(shù)。據(jù)此,以最常用的NTFS文件為對象,通過實驗,定量分析了不同數(shù)量目錄和文件的讀取效率和變化趨勢,得出了一種簡單易行的優(yōu)化方法,有效改善了海量文件存儲訪問的響應(yīng)時間,特別是存在大量小文件的情形。研究結(jié)果對于提高某些應(yīng)用系統(tǒng)性能,特別是自動文件保存和緩沖,如氣象水文觀探測報文的接收處理和批量數(shù)據(jù)交換等,有重要的工程指導(dǎo)意義。下一步將結(jié)合具體應(yīng)用案例,將本文提出的優(yōu)化存儲方法在不同文件系統(tǒng)中進(jìn)行檢驗,并與分布式環(huán)境下的負(fù)載均衡和備份服務(wù)相結(jié)合。

      參考文獻(xiàn)(References)

      [1] 尤晉元,史美林.Windows操作系統(tǒng)原理[M].北京:機(jī)械工業(yè)

      出版社,2001.

      [2] 張春明,芮建武,何婷婷.一種Hadoop小文件存儲和讀取的方

      法[J].計算機(jī)應(yīng)用與軟件,2012,29(11):95-100.

      [3] 趙躍龍,等.一種性能優(yōu)化的小文件存儲訪問策略的研究[J].

      計算機(jī)研究與發(fā)展,2012,49(7):1579-1586.

      [4] Bo Dong,etc.A Novel Approach to Improving the Efficiency

      of Storing and Accessing Small Files on Hadoop:a Case Study by

      PowerPoint Files. 2010 IEEE International Conference on

      Services Computing[R].

      [5] 吳偉民,等.NTFS B+樹大目錄結(jié)構(gòu)動態(tài)解析[J].計算機(jī)工程

      與設(shè)計,2013,34(4):1376-1382.

      作者簡介:

      吳 陽(1989-),男,碩士,學(xué)生.研究領(lǐng)域:信息與通信工程.

      馮 徑(1952-),女,博士,教授.研究領(lǐng)域:系統(tǒng)集成與應(yīng)用.endprint

      玉山县| 眉山市| 六安市| 登封市| 洛南县| 赫章县| 锡林浩特市| 黔西县| 沿河| 夏邑县| 赤壁市| 静乐县| 安义县| 张家港市| 宁乡县| 环江| 鸡东县| 金昌市| 乌兰察布市| 黄平县| 馆陶县| 莲花县| 邹平县| 金坛市| 封开县| 定边县| 湾仔区| 深圳市| 武山县| 栾城县| 黔南| 丹棱县| 阿拉善盟| 虹口区| 巴彦淖尔市| 马边| 韩城市| 屏边| 邛崃市| 江油市| 开远市|