3

我的問題是關於Windows上的遠程文件系統。本地寫文件與遠程文件系統?

假設您的工作站X有權訪問網絡上的文件系統 - 比如說說\\ServerY\MYDir\

試想一下,你有十兩個同步線程

  1. 線程1在X寫入文件到本地硬盤目錄中的場景 - C:\MYDir\
  2. 線程2正在寫入\\ServerY\MYDir\的遠程文件。

我想知道這兩個IO操作實際上是獨立的,也就是說線程1只使用X的硬盤控制器,而線程2只使用網絡並將所有數據傳遞到服務器上,其實是寫到serverY上的硬盤上。

或者

是線程2也在X做一些本地緩存中的數據(因此使用在X硬盤控制器)。在這種情況下,線程2的IO操作可能會干擾線程1的操作,這可能會導致性能損失。

基本上 - 在寫本地文件和寫在遠程文件上會有什麼收穫?

我的問題是具體由像微軟網絡或Windows NFS支持遠程文件系統

回答

0

通常線程2將不緩存寫入本地和兩個線程是獨立的。 因此,一般來說,您會看到同時訪問這兩個文件的性能優勢。

您通常還會看到訪問位於不同磁盤上的兩個本地文件帶來的性能優勢 - 即使它們位於同一個控制器上。

即使文件位於同一磁盤上,您也可以經常看到性能優勢,因爲這樣可以讓磁盤保持繁忙 - 但爲了避免顛倒頭部,您需要在大塊中執行IO操作。 如果本地驅動器是閃存,那麼沒有尋道時間,所以多線程讀取/寫入不會像在硬盤驅動器上那樣降低性能。

有幾件事會影響到這一點: 1:Windows支持允許客戶端緩存遠程文件系統的文件的「脫機文件」,這兩個文件都可以在本地驅動器上讀寫。它曾經是當客戶端在離線時只使用本地緩存。我不知道Win8是否會改變這一點。

2:「\ ServerY」實際上可能是指本地計算機。