2013年3月22日 星期五

USB 3.0 介面卡與硬碟外接盒速度比較



因為那場惡夢, 為了找問題, 買了一些設備來交叉比對, 正好拿來做一些匹配性與速度的量測, 提供一些數據給網友們做參考!!

實驗設備


平台
    Windows Server 2003 R2 Enterprise Edition SP2 [5.2 Build 3790] (x64)

USB 3.0 介面卡A 
    晶片 uPD720201

USB 3.0 介面卡B
    晶片 ASM1042


USB 3.0硬碟外接盒 1 
   S25U3-6GUASP ( 晶片 ASM1053 )


USB 3.0硬碟外接盒 2
   AKE ( 晶片 ASM1051 )


SSD 
   Plextor M5S 256G

USB 3.0 隨身碟 1
   Transcend JF760 32G



USB 3.0 隨身碟 2
   Sandisk SDCZ80 64G



測速軟體
   CrystalDiskMark 3.0.2 (C)

測速執行設定
    Test : 1000 MB [P: 20.6% (49.0/238.5 GB)] (x1)





USB 3.0 介面卡A + USB 3.0硬碟外接盒 1 SSD  ( uPD720201+ ASM1053 )
           Sequential Read :   142.045 MB/s
          Sequential Write :   123.784 MB/s
         Random Read 512KB :   101.244 MB/s
        Random Write 512KB :   122.409 MB/s


USB 3.0 介面卡A + USB 3.0硬碟外接盒 2 SSD  ( uPD720201+ ASM1051 )
           Sequential Read :   130.193 MB/s
          Sequential Write :   122.727 MB/s
         Random Read 512KB :    95.896 MB/s
        Random Write 512KB :   121.705 MB/s


USB 3.0 介面卡A + USB 3.0 隨身碟 2    Sandisk SDCZ80 64G

           Sequential Read :   141.566 MB/s
          Sequential Write :   117.068 MB/s
         Random Read 512KB :   114.013 MB/s
        Random Write 512KB :    22.571 MB/s


USB 3.0 介面卡A + USB 3.0 隨身碟 1    Transcend JF760 32G

           Sequential Read :    82.885 MB/s
          Sequential Write :    42.714 MB/s
         Random Read 512KB :    72.650 MB/s
        Random Write 512KB :     1.641 MB/s



USB 3.0 介面卡B + USB 3.0硬碟外接盒 1 SSD  ( ASM1042 + ASM1053 )

           Sequential Read :   140.692 MB/s
          Sequential Write :   132.129 MB/s
         Random Read 512KB :   101.653 MB/s
        Random Write 512KB :   130.878 MB/s


USB 3.0 介面卡B + USB 3.0硬碟外接盒 2 SSD  ( ASM1042 + ASM1051 )

           Sequential Read :   137.518 MB/s
          Sequential Write :   128.360 MB/s
         Random Read 512KB :    99.963 MB/s
        Random Write 512KB :   128.468 MB/s


USB 3.0 介面卡B + USB 3.0 隨身碟 2    Sandisk SDCZ80 64G

           Sequential Read :   139.383 MB/s
          Sequential Write :   134.175 MB/s
         Random Read 512KB :   113.426 MB/s
        Random Write 512KB :    24.021 MB/s


USB 3.0 介面卡B + USB 3.0 隨身碟 1    Transcend JF760 32G

           Sequential Read :    82.937 MB/s
          Sequential Write :    42.334 MB/s
         Random Read 512KB :    72.578 MB/s
        Random Write 512KB :     1.506 MB/s


總結


  1. 介面卡的差異性不大, 兩者價錢也差不多, 幾乎沒差別, 唯一有差別的是ASM1042的介面卡, 在Windows平台上是需要安裝驅動程式的, 但uPD720201不需要額外裝驅動程式 !
  2. USB 3.0 硬碟外接盒差異性就有多些差異了, ASM1053的數字比較好, 但價差很大!! S25U3-6GUASP約七百多, 但AKE的三百元不到!! 不過因為我的主機板沒支援UASP, 所以前者也無法跑出廠商宣稱的更快速度.
  3. 同是隨身碟, 本身也有速度差, 若需求是快速存取, 建議是買大容量的, 因為即使是同一款式, 大容量的存取速度會比較快, 此外格式化的類型也有影響, 可參考先前的文章!!


2013年3月20日 星期三

Vmware 與Linux Kernel 更新衝突



這下"杯具"了 ...

前幾篇文章都在搞儲存媒體,  只為了加快Vmware所需的存取, 其中一個動作就是升級Kernel

從Ubuntu 11.04 3.0.0-32 升級到 12.04 3.2.0-39 甚至手動升級Kernel到 3.8.2

好不容易搞定儲存媒體, 結果執行後才知道該死了,...

VMware workstation 9.0.0 build 812388 沒支援這麼新的 Kernel !!!


一開始是告知 vmware kernel module updater 找不到  header ...

網路上的解法是

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

但在後續安裝上仍會出問題 ...

VMware Blocking Filesystem 與 Virtual Machine Communication Interface 會出現編譯失敗

進一步得安裝 vmware patch for 3.8 kernel

但即使安裝後還是沒辦法解決問題

後續也嘗試著重新安裝, 但即使整個過程都沒有出現錯誤, 可以讓VMware順利執行, 但只要一執行任一 Guest OS, 底層的作業系統就立即掛掉 !!

難外網友建議, 不要搞Patch了, 直接以舊版Kernel啟動 !

看來這是階段性最好的方法了 !

2013年3月19日 星期二

隨身碟的檔案系統與速度比較



寫在前面

這篇內容, 提到不少格式化的動作 ! 有必要提醒一下, 磁碟或隨身碟格式化後, 資料就不見了(或者說是很難救回來), 所以操作前務必小心, 資料一定要先備份, 也別手滑了搞錯磁碟機 ! 


因為之前的那場惡夢, 所以買了Sandisk SDCZ80 64G隨身碟, 拆封後做了一些傳輸實驗, 速度還不錯, 讀取有到130MB/s 以上, 寫入也有 90MB/s !

但想說網路上說3C的商品瑕疵不少, 我的手氣也挺不好的, 還是 Format一下吧 , 做個驗證. 但就因此又出狀況了! 手氣背呀 !

FAT32有單檔4G的問題, 所以NTFS是比較直覺的選擇,

NTFS格式化後, 寫入速度竟然掉到40MB/s 以下 ! 不會吧, 這是USB 3.0的隨身碟耶 ! 剛到手的速度很好呀, 怎麼格式化後, 速度全沒了, 反而變慢很多!!

仔細參考網路上的說明, 招式不少, 但看來怪怪的, 效果不一... 還是自己實驗比較準..

測速系統平台
Linux ( Ubuntu 12.04, Kernel 3.8.2-030802 )
配備 USB 3.0介面卡

隨身碟
Sandisk SDCZ80 64G

測試檔案
ubuntu-9.10-dvd-amd64.iso 檔案大小 3.89GB ( 4174614528Bytes )


格式化用系統平台
Windows XP


實驗開始


當該隨身碟格式化為NTFS (配置單位大小為預設值 4K)

$ cat ubuntu-9.10-dvd-amd64.iso | pv -abt -B 0 > /media/2CBA24E6BA24ADF0/test1.data
寫入 3.89GB [32.3MB/s]


$ cat /media/2CBA24E6BA24ADF0/test1.data | pv -abt > ./testa.data
讀取 3.89GB [ 132MB/s]





當該隨身碟格式化為FAT32 (配置單位大小為預設值, 16K ?)
$ cat ubuntu-9.10-dvd-amd64.iso | pv -ab -B 0 > /media/26BB-E26D/test3.data
寫入 3.89GB [ 101MB/s]

$ cat /media/26BB-E26D/test2.data | pv -abt > ./testa.data
讀取 3.89GB [ 123MB/s]



當該隨身碟格式化為exFAT  (配置單位大小為預設值, 128K?  exFAT聽說是64GB Flash出廠的預設格式, Sandisk官網說的)

$ cat ubuntu-9.10-dvd-amd64.iso | pv -abt -B 0 > /media/2AC7-BD36/testa.data
寫入 3.89GB 0:00:39 [ 101MB/s]

$ cat /media/2AC7-BD36/testa.data | pv -abt > ./testa.data
讀取 3.89GB 0:00:31 [ 128MB/s]




嘿嘿, 看來找到玄機了 ! 相同環境下, 不同的磁碟格式, 效能差異很大 !!

不過這其中看到幾個變數調整點

  • 格式化的工具
    • 當在檔案總管時中,針對磁碟機按右鍵選擇格式化, 
      • 這邊執行格式化程式, 選項很少, 尤其是要調整配置單位大小, 通常不能調
      • 安裝完exFAT程式後, 格式化64GB隨身碟時, 格式將被鎖住, 只能選exFAT, 要選用其他格式, 需用其他方式.
    • 電腦管理中的磁碟管理, 這是另一個格式化程式的執行點, 要調整配置單位大小, 可從這邊進行
    • 另一個比較完整的掌控方法就是使用Dos Command
      • 下面指令假設 隨身碟的磁碟代號為 R ( 千萬別照抄 !!! )
      • Format R: /FS:FAT32 /A:8192 ( 將 R: 格式化為 FAT32, 配置單位大小為8K )
      • Format R: /FS:NTFS /A:64K ( 將 R: 格式化為 NTFS, 配置單位大小為64K )
      • Format R: /FS:exFAT /A:64K ( 將 R: 格式化為 exFAT, 配置單位大小為64K ) 
  • 格式化中的選項"配置單位大小"

當NTFS格式下, 不同的配置單位大小, 對效能是否有差異 ( 量測使用的Linux指令同上, 就不再贅述 )

當該隨身碟格式化為 NTFS 配置單位大小為64K

寫入 15.2MB/s  (不是一個慘字能形容)
讀取 124MB/s


當該隨身碟格式化為 NTFS 配置單位大小為8K

寫入 30.8MB/s  
讀取 124MB/s



當該隨身碟格式化為 NTFS 配置單位大小為2K

寫入 31.6MB/s  
讀取 126MB/s




當該隨身碟格式化為 NTFS 配置單位大小為512

寫入 31MB/s  
讀取 123MB/s



看來沒有提升, 影響性不大 ....





 換個格式FAT32, 試試不同的配置單位大小, 對效能是否有差異

當該隨身碟格式化為 FAT32 配置單位大小為64K

寫入 229MB/s
讀取 120MB/s



當該隨身碟格式化為 FAT32 配置單位大小為8K

寫入 235MB/s  
讀取 124MB/s



當該隨身碟格式化為 FAT32 配置單位大小為2K

寫入 228MB/s  
讀取 116MB/s




當該隨身碟格式化為 FAT32 配置單位大小為512

寫入 166MB/s  
讀取 121MB/s






 換個格式exFAT, 試試不同的配置單位大小, 對效能是否有差異

當該隨身碟格式化為 exFAT 配置單位大小為128K

寫入 124MB/s
讀取 118MB/s

當該隨身碟格式化為 exFAT 配置單位大小為64K

寫入 137MB/s
讀取 128MB/s


當該隨身碟格式化為 exFAT 配置單位大小為32K

寫入 91MB/s  
讀取 121MB/s


實驗結束


終於可以不用再Format那個可憐的隨身碟 !!





後續測試


CrystalDiskMark 3.0.2


測試條件
Test : 1000 MB [G: 0.0% (0.0/59.6 GB)] (x1)



當該隨身碟格式化為 FAT32 配置單位大小為64K



           Sequential Read :   142.897 MB/s
          Sequential Write :   125.653 MB/s
         Random Read 512KB :   117.681 MB/s
        Random Write 512KB :    20.001 MB/s




當該隨身碟格式化為 FAT32 配置單位大小為32K



           Sequential Read :   142.586 MB/s
          Sequential Write :   115.089 MB/s
         Random Read 512KB :   117.410 MB/s
        Random Write 512KB :    20.011 MB/s




當該隨身碟格式化為 FAT32 配置單位大小為16K




           Sequential Read :   142.838 MB/s
          Sequential Write :   124.905 MB/s
         Random Read 512KB :   117.410 MB/s
        Random Write 512KB :    20.930 MB/s





當該隨身碟格式化為 FAT32 配置單位大小為8K


           Sequential Read :   139.587 MB/s
          Sequential Write :   116.690 MB/s
         Random Read 512KB :   115.401 MB/s
        Random Write 512KB :    21.173 MB/s







當該隨身碟格式化為 FAT32 配置單位大小為4K



           Sequential Read :   140.390 MB/s
          Sequential Write :   125.233 MB/s
         Random Read 512KB :   115.989 MB/s
        Random Write 512KB :    20.146 MB/s







綜合結論


綜合以上數據, 與我個人使用的需求, 我會選擇 FAT32, 16K !

( VM檔案大, 重點在追求速度! 空間浪費問題是比較其次的, 放超過4G的檔案機率不大...)



後記

exFAT是比較新的檔案格式, Windows 7版本以上才有預設支援, 其他系統得升級後才能支援, 會對可攜性造成一定的影響, 請多留意 !  若使用的是XP系統須安裝 KB955704 的升級軟體, 才能支援 !

各格式的預設單位大小Microsoft有個參考表

2013年3月15日 星期五

惡夢! Ubuntu 上 USB 3.0



最近想搞一些VM, 也想把VM環境搞成可攜帶式, So... 首選衝SSD + USB 3.0 ...

一場惡夢就此開始 ...

環境:

USB 3.0 介面卡 
   LT105 (晶片 uPD720201 ) 兩張各裝在Ubuntu (11.10, 12.04) 與Windows ( Windows 2003 )

USB 3.0 硬碟外接盒1
   S25U3-6GUASP ( 晶片 ASM1053 )


SSD 
   Plextor M5S 256G


USB 3.0 隨身碟
   Transcend JF760 32G




我常用的環境是Ubuntu 主機, 所以就在Ubuntu上面的VMware上開始建立VM. 掛!!! 系統告知讀不到SSD! 甚至連帶慘到讓Linux kernel crash, 主機自動重新開機 !! 回頭翻syslog只是很輕描淡寫的告知  device not ready !!



Mar 14 10:13:08 Linux kernel: [  218.255774] xhci_hcd 0000:03:00.0: xHCI xhci_drop_endpoint called with disable
d ep ffff8803ae607540
Mar 14 10:13:08 Linux kernel: [  218.273966] sd 7:0:0:0: [sdc] Device not ready
Mar 14 10:13:08 Linux kernel: [  218.273975] sd 7:0:0:0: [sdc]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Mar 14 10:13:08 Linux kernel: [  218.273984] sd 7:0:0:0: [sdc]  Sense Key : Not Ready [current]
Mar 14 10:13:08 Linux kernel: [  218.273993] sd 7:0:0:0: [sdc]  Add. Sense: Medium not present
Mar 14 10:13:08 Linux kernel: [  218.274003] sd 7:0:0:0: [sdc] CDB: Write(10): 2a 00 09 4d 7b d8 00 00 f0 00
Mar 14 10:13:08 Linux kernel: [  218.274022] end_request: I/O error, dev sdc, sector 156072920
Mar 14 10:13:08 Linux kernel: [  218.274030] quiet_error: 54 callbacks suppressed
Mar 14 10:13:08 Linux kernel: [  218.274037] Buffer I/O error on device sdc1, logical block 19508859
Mar 14 10:13:08 Linux kernel: [  218.274042] lost page write due to I/O error on sdc1
Mar 14 10:13:08 Linux kernel: [  218.274051] Buffer I/O error on device sdc1, logical block 19508860
Mar 14 10:13:08 Linux kernel: [  218.274056] lost page write due to I/O error on sdc1

初步懷疑是USB 3.0 介面卡的問題, 找了很久!
甚至從 Ubuntu 11.10( kernel 3.0.0-32 )升級到 Ubuntu 12.04 (kernel 3.2.0-38)!
最後火大了, 手動升級Kernel到 3.8.2 ...
結果還是掛...

不過最新的kernel會好一點, 掛掉時只是該檔案操作程序失敗, 不至於拖垮整個系統!

所以疑點擴大了, 該是透過系統性的實驗來找問題了.


SSD 資料讀取實驗 Linux

SSD ---- > 外接盒1 --- > USB介面卡 --- > Ubuntu
複製大量資料 (4G以上) 系統正常 速度還跑出了超過100MB/s令人感動的數字

SSD 資料寫入實驗 Linux (掛點)

SSD  < ---- 外接盒1  < --- USB介面卡  < --- Ubuntu
複製大量資料 (4G以上) 一開始還不錯, 然後沒多久就掛了, 沒完成, 速度數字就不重要了



SSD 資料讀取實驗 PC Windows 

SSD --- > 外接盒1 --- > USB介面卡 --- > Windows
複製大量資料 (4G以上) 系統正常 速度還OK 約81MB/s

SSD 資料寫入實驗 PC Windows

SSD  < ---  外接盒1  < ---  USB介面卡  < ---  Windows
複製大量資料 (4G以上) 系統正常 速度 82MB/s



SSD 資料讀取實驗 NB Windows

SSD  --- > Notebook(原生USB 3.0介面)
複製大量資料 (4G以上) 系統正常 速度--49MB/s

SSD 資料寫入實驗 NB Windows

SSD  < --- Notebook(原生USB 3.0介面)
複製大量資料 (4G以上) 系統正常 速度--64MB/s



對照組出場
USB 3.0 隨身碟 Transcend JF760 32G


隨身碟資料讀取實驗 Linux

隨身碟 --- > USB介面卡 --- > Ubuntu
複製大量資料 (4G以上) 系統正常 速度83MB/s


隨身碟資料寫入實驗 Linux

隨身碟  < ---  USB介面卡  < ---  Ubuntu
複製大量資料 (4G以上) 系統正常 速度74MB/s


隨身碟資料讀取實驗 PC Windows

隨身碟 --- > USB介面卡 --- > Windows
複製大量資料 (4G以上) 系統正常 速度--52MB/s

隨身碟資料寫入實驗 PC Windows

隨身碟 < ---  USB介面卡 < ---  Windows
複製大量資料 (4G以上) 系統正常 速度--41MB/s


隨身碟資料讀取實驗 NB Windows

隨身碟  --- > Notebook(原生USB 3.0介面)
複製大量資料 (4G以上) 系統正常 速度--51MB/s

隨身碟資料寫入實驗 NB Windows

隨身碟 < ---  Notebook(原生USB 3.0介面)
複製大量資料 (4G以上) 系統正常 速度--37MB/s


結論

  • X的! 一開始構想的SSD加上外接盒的方案就是個錯誤的開始, 還不如搞個隨身碟方案!
  • Linux 上USB 3.0介面卡的穩定度真的還存在不少問題, 即使是升級到相當新的版本也是一樣.
  • 硬碟外接盒的相容性似乎也有問題, 等另一款外接盒到手時, 再來個交互驗證.