圖2: 對于傳統(tǒng)的TPC1基準(zhǔn)中規(guī)定的平均響應(yīng)時(shí)間小于100ms這個(gè)指標(biāo),Linux (XFS)比Windows 2003 Server (NTFS)的測試結(jié)果更優(yōu),前者可以實(shí)現(xiàn)更多的I/O請求次數(shù)。測試基于oblLoad v.1.0基準(zhǔn)。 
  
  通常情況下,在Linux和Windows下的兩條數(shù)據(jù)傳輸率測試曲線在讀數(shù)據(jù)塊大小達(dá)到64KB時(shí)匯合。我們的測試中,兩種操作系統(tǒng)下使用的都是LSI Logic Ultra320 SCSI控制器,當(dāng)讀入的數(shù)據(jù)塊的大小為16KB時(shí),Windows環(huán)境下的I/O傳輸量開始超過Linux。當(dāng)讀入數(shù)據(jù)塊大小為64KB時(shí),Windows 2003 Server下的數(shù)據(jù)傳輸量比Linux超出33%。重要的是,大多數(shù)程序使用的是8KB的數(shù)據(jù)塊的讀入尺寸。通常在Windows環(huán)境下,僅在使用諸如備份軟件或者內(nèi)部的數(shù)據(jù)庫時(shí),才使用大的數(shù)據(jù)塊尺寸?!?BR>    Windows環(huán)境下的性能更優(yōu)的原因歸功于Windows進(jìn)行file I/O的工作。不同于Linux的捆綁請求的做法,Windows能夠響應(yīng)所有的請求,之后異步地等待它們所請求數(shù)據(jù)的返回。 
    這個(gè)概念可以通過oblDisk基準(zhǔn)測試得到模擬,該軟件把文件分區(qū),使用單獨(dú)的線程來并行地讀入每個(gè)區(qū)的數(shù)據(jù)。當(dāng)使用了4個(gè)線程時(shí),Windows下的數(shù)據(jù)傳輸量一直等到數(shù)據(jù)塊大小超過32KB時(shí),才超過Linux?!?BR>    對于15K的Maxtor硬盤來說,一個(gè)重要的指標(biāo)是其快速的3.2ms的尋道時(shí)間。在我們的oblLoad I/O 負(fù)載基準(zhǔn)測試中,有這樣出色的結(jié)果,這個(gè)指標(biāo)起了關(guān)鍵作用。 
    通常這種測試是在事務(wù)處理環(huán)境中測量實(shí)現(xiàn)數(shù)據(jù)庫模式的I/O的請求的次數(shù)的,這對Linux來說并不適合,因?yàn)橐酝腖inux內(nèi)核并不專門支持異步I/O,而Windows則支持?!?BR>  



    在oblLoad基準(zhǔn)測試中,后臺線程處理時(shí)發(fā)送的是自己的單獨(dú)的8KB大小的數(shù)據(jù)塊請求,這個(gè)方法模擬了存取關(guān)系數(shù)據(jù)庫的模式。這個(gè)過程持續(xù)到平均存取時(shí)間超過100ms,100ms是TPC1基準(zhǔn)測試的門檻。oblLoad的測試結(jié)果可以表示為每秒總共的I/O次數(shù)同總共I/O相關(guān)進(jìn)程的數(shù)量之間的關(guān)系,或者表示為響應(yīng)時(shí)間同每秒處理的I/O次數(shù)之間的關(guān)系。 
    隨著更多I/O處理線程的加入,系統(tǒng)完成更多I/O請求的能力取決于數(shù)據(jù)緩存大小和線程負(fù)載平衡能力?!?BR>    對于LSI Logic控制器,在SLES上,我們能夠發(fā)送出250個(gè)模擬用戶在線時(shí)的2,000多個(gè)IOPS,這個(gè)數(shù)字是我們的Ultra160 SCSI參考子系統(tǒng)的兩倍多。令人驚奇地是,這個(gè)數(shù)字也比Windows 2003每秒能夠處理的I/O次數(shù)多。盡管如此,Windows 2003 Server在這些測試中的結(jié)果更勝一籌,在Windows 2003中,我們測試結(jié)果表明:在少于8ms內(nèi),Windows可以處理更多的I/O次數(shù)。對于8ms的響應(yīng)時(shí)間, Windows 2003每秒處理的I/O次數(shù)要比Linux多40%。
  

分享到

多易

相關(guān)推薦