zuzu2008 wrote:
只是我比較好奇傳送時(恕刪)
現在的作業系統都有使用記憶體來做為Cache的技術。
PC (讀取) --> NAS (寫入)
對PC端來說,它只要將檔案丟到NAS的快取裏,就算完成傳輸的動作,不必等到資料寫入硬碟才算完成。
PC --> NAS Cache --> 回報傳輸完成 --> PC傳輸下一筆資料
.....................|__空閒時將資料寫入硬碟
當NAS快取用完時,就必需等NAS將資料寫入硬碟,才算完成傳輸,PC才能傳輸下一筆資料。這也就是為什麼圖示的傳輸曲線會直接拉至100M,再掉到6M。實際上,依我之前做的測試,小檔案的傳輸約在17M左右(依設備、系統會有差異),iSCSI小檔案的傳輸效能較好,但絕對跑不到100M,所以應該是有使用快取技術沒錯。
你可以做一個簡單的測試,NAS的記憶體,扣除系統所佔用外,基本上應該都會拿來做快取用(當有需要時,系統會自動調節釋放),準備二份測試檔案,一份小於NAS剩餘記憶體;一份大於NAS剩餘記憶體,分別做傳輸測試。小於NAS剩餘記憶體,傳輸曲線會平穩上升直到傳輸完畢;大於NAS剩餘記憶體,傳輸曲線會像你之前的圖示一樣,當傳輸的量超過快取容量時,快速下滑直到結束。
以上是針對寫入時的快取行為,讀取時又不一樣了…
PC (寫入) <-- NAS (讀取)
快取寫入的瓶頸換成PC端,但原理是一樣的。對NAS端來說,資料一樣會讀取至快取,但對第一次傳輸並無助益。讀取的的快取只會對同資料第二次以後的傳輸有幫助,免除了磁碟I/O的延遲,直接從快取裏讀取。這時的傳輸瓶頸就是會是"網路間的傳輸"及接收端的寫入了。
NAS硬碟 --> PC <- 第1次傳輸
....... |__快取 --> PC <- 第2~N次傳輸或其他設備讀取



























































































