以往來說 ,GigaLan跑不到全速的原因,通常是由於儲存媒體的存取速度無法滿足GigaLan,就好像高速公路(GigaLan)限速125,但你的小March(硬碟)最快只能開到60,這不是高速公路(GigaLan)的錯,誰叫你開小March,換台法拉利來就沒問題了。
因此,碰到這類問題,通常會建議User使用Ramdisk來當傳輸的載體,避免硬碟的存取速度限制了網路的傳輸測試。只是,這有兩個問題:第一,雖然Ramdisk可以測出網路傳輸的極限,但畢竟大家還是用硬碟來儲存資料,實際意義不大;第二,現在一般的硬碟傳輸速度大都巳破百,超過GigaLan的上限。那麼是否還有其他原因會影響到傳輸的快慢?
因此,此測試就是想找出影響網路傳輸快慢的因素。
測試環境:
我準備了二台測試機,一號測試機是我目前正在使用的電腦,模擬Client端,二號測試機則是用來模擬Server端。

測試環境 | Zoey | Sophie |
CPU | Q9400 2.66G | E5400 2.7G |
RAM | 8G | 8G |
OS | Win7 x64 | Win7 x64 |
NIC | Intel 82567LM-3 | Intel 82566DM-2 |
HD Read/Write | 123 / 122 | 127 / 126 |
RamDisk R/W | 2329 / 3949 | 1997 / 3259 |
測試用的硬碟為Seagate 梭魚12代 ST3250312AS 250G 7200RPM,格式化為NTFS,開啟AHCI,安裝為獨立磁碟(非系統碟),避免系統干擾。
另外使用ImDisk 1.53建立Ramdisk,大小4G,格式化為FAT32,做為對照測試。
測試檔案:
我準備了大檔案及小檔案各兩組
大檔案:PCBSD8.2-x64-USB.img、PCBSD8.2-x86-USB.img
單一檔案,用來測試大檔案的傳輸,檔案大小均為3850MB。
小檔案:Small1、Small2 兩個資料夾
這兩個資料夾的內容是完全一樣的,資料夾內共有6696個,從1K至2M大小不等的檔案,用來測試小檔案的傳輸,資料夾的大小為1000MB。
測試方法:
一號機的測試碟為F槽,Ramdisk為Z槽,並將二號機分享出來的測試碟設為網路磁碟機Y,二號機的Ramdisk設為網路磁碟機W。
原本是使用Fastcopy來做測試軟體,但測到後面發現,在某些系統底下,有些測試出來的數據與手動測試有滿大的落差。加上Fastcopy快取的設定,使得一些原本該有的差異趨近於無,因此捨棄此方法。後來嚐試使用批次檔來記錄檔案傳輸的開始與結束,並換算出傳輸值,不過很奇怪的,此方法量測出來的值差距滿大的,沒有一個基準,不知道原因為何,也就不採用。
最後只好用最笨、最累、最耗時,但我覺得應該算是最準,也最符合一般人使用習慣的方法,就是直接用檔案總管複製,使用碼錶計時,將“檔案大小/傳輸時間”,來得出網路傳輸值。至於傳輸時的CPU使用率,因為很難去量化,所以就不去記錄。
二號機是乾淨的系統,一號機因為我要使用,所以安裝了幾個常用的軟體,不過我還是儘量保持系統的單純。二台機器在開完機,磁碟停止讀取後才開始測試;測試時不做任何其他的動作,以避免影響測試。二台機均安裝MSE 2.0防毒軟體。
由於Win7預設會將記憶體拿來做Cache,為了避免影響測試,因此準備了大、小檔案各兩組,以檔案總管複製到目地磁碟,分別測試第一次及第二次的傳輸值。而第三次測試的檔案和第二次相同,藉以得知快取對傳輸的影響。測試完一輪,將兩台機器重開,消除系統快取對傳輸的影響。若是對測試出來的數據有疑問,則重開,重測一次,所以真的是很累。
測試基準:測試碟讀寫能力
先看硬碟的測試數據
一號機:Zoey



二號機:Sophie



手動實測硬碟傳輸數據:


真正要看的是「Disk->RAM」中1st及2nd的數值,3rd的數值是經過快取的;另外「RAM->Disk」因為必需先從磁碟Copy到Ramdisk,還是免不了被快取,因此數值僅供參考用。
可以看到,基本上大檔案的讀寫均能破百,應付GigaLan應該是夠了;而小檔案的讀寫大約落在30MB/s左右。另外,Win7的快取對大檔案的影響較小,我想應該是記憶體不夠大的關係。原本8G的記憶體,拿其中4G去做Ramdisk,剩下的記憶體扣掉系統佔用,要再拿來快取一個將近4G大的檔案,應該是不太夠,不過影響還是有的。但相同的記憶體拿去快取1G的小檔案卻綽綽有餘,從圖表可以看出,Win7的快取真的還滿好用的。
測試一:單一磁碟
大檔案:

小檔案:

大檔案的傳輸基本上都能接近百MB,這證明在GigaLan傳輸要達到破百不是一件太困難的事。若你確定你的網路設備均符合GigaLan的需求,傳輸速度卻低於你的料想,或許你應該先檢查硬碟的讀寫速度是否能達到你的需求,而且是二邊的硬碟都要檢查。
小檔案的傳輸,從原本本機傳輸的30MB/s,降至15~17MB/s左右。也就是說硬碟夠力,但網路來不及傳輸。這是可以理解的,畢竟要為6千多個檔案建立網路連接,勢必會比本機傳輸要來得慢。
OK,這個測試最單純,是以單一硬碟,測試最基本的網路傳輸能力,我相信這應該是最符合大多數人的使用環境。因此,此次的數據會拿來做為測試的基準,以後測試的數據以此做為對照。
To be continue…
網路傳輸測試 測試二:影響網路傳輸的因素
網路傳輸測試 測試三:Soft Raid @ Windows
網路傳輸測試 番外篇:殘酷的現實…
網路傳輸測試 測試四:ZFS @ Solaris Express 11
網路傳輸測試 測試五:ZFS 二回戰