Rsync
SSHFS 上的 Rsync 掛起
我已
sshfs
設置連接到我無權ssh
訪問的另一個系統(Rackspace 雲站點)(但由於某種原因我可以使用 sshfs?看圖)。我正在嘗試將rsync
文件從sshfs
掛載到我的本地磁碟。這是幾千個小文件(1k-200k)。有時,rsync 會在非常小的文件上暫停並掛起一段時間。它會暫停,比如說一個 10k 的文本文件 5 分鐘,然後它會繼續。有什麼地方可以在我的機器上查看,以確定為什麼 rsync 會像這樣掛起?還是很有可能這只是另一端的問題,我無能為力?
我的 rsync 選項很簡單
-avrP
。
好吧,我要試一試,因為我認為我的想法是有道理的。
在這種情況下,您正在處理多個記憶體,我認為這就是絆倒您的原因。
rsync 做的第一件事是確定它需要傳輸哪些文件。它通常通過在遠端端生成一個 rsync 實例,讀取源目錄中每個文件的元數據,同時讀取本地文件的元數據,然後比較兩個元數據集. 任何更新的(或不同的,取決於 rsync 選項)都會被傳輸。
根據 rsync,你沒有“遠端端”。您正在“本地”工作,因此它將遍歷兩個目錄,即源和目標。
這是非常磁碟密集型的,特別是對於大量小文件 - 文件越多,磁碟操作越離散。這會導致大量磁碟抖動,而且它會用這些文件中的元數據填充記憶體。
請注意,這一直發生在堆棧的下方。您的本地機器記憶體來自您通過 ssh 和本地目錄安裝的 FUSE 文件系統的元數據。遠端機器記憶體來自本地磁碟裝載的元數據。執行遠端機器的 VM 主機幾乎可以肯定是過度使用並給你提供了膨脹的記憶體。
我懷疑當它凍結時你很可能會越過門檻值,並且一切都必須趕上並解記憶體或交換。
我很想看看當您在沒有磁碟安裝的情況下通過 ssh 執行 rsync 時是否會發生這種情況。