Rsync

SSHFS 上的 Rsync 掛起

  • January 10, 2012

我已sshfs設置連接到我無權ssh訪問的另一個系統(Rackspace 雲站點)(但由於某種原因我可以使用 sshfs?看圖)。我正在嘗試將rsync文件從sshfs掛載到我的本地磁碟。這是幾千個小文件(1k-200k)。有時,rsync 會在非常小的文件上暫停並掛起一段時間。它會暫停,比如說一個 10k 的文本文件 5 分鐘,然後它會繼續。

有什麼地方可以在我的機器上查看,以確定為什麼 rsync 會像這樣掛起?還是很有可能這只是另一端的問題,我無能為力?

我的 rsync 選項很簡單-avrP

好吧,我要試一試,因為我認為我的想法是有道理的。

在這種情況下,您正在處理多個記憶體,我認為這就是絆倒您的原因。

rsync 做的第一件事是確定它需要傳輸哪些文件。它通常通過在遠端端生成一個 rsync 實例,讀取源目錄中每個文件的元數據,同時讀取本地文件的元數據,然後比較兩個元數據集. 任何更新的(或不同的,取決於 rsync 選項)都會被傳輸。

根據 rsync,你沒有“遠端端”。您正在“本地”工作,因此它將遍歷兩個目錄,即源和目標。

這是非常磁碟密集型的,特別是對於大量小文件 - 文件越多,磁碟操作越離散。這會導致大量磁碟抖動,而且它會用這些文件中的元數據填充記憶體。

請注意,這一直發生在堆棧的下方。您的本地機器記憶體來自您通過 ssh 和本地目錄安裝的 FUSE 文件系統的元數據。遠端機器記憶體來自本地磁碟裝載的元數據。執行遠端機器的 VM 主機幾乎可以肯定是過度使用並給你提供了膨脹的記憶體。

我懷疑當它凍結時你很可能會越過門檻值,並且一切都必須趕上並解記憶體或交換。

我很想看看當您在沒有磁碟安裝的情況下通過 ssh 執行 rsync 時是否會發生這種情況。

引用自:https://serverfault.com/questions/348533