Filesystems
為什麼 ZFS 複製是單執行緒的?
在我的 8 核 NAS 上,當 ZFS 複製通過 SSH 執行時,我看到只有一個核心被最大化。
我希望傳輸快照將與數量或核心完美擴展,因為快照可以分成 N 個獨立的部分。
為什麼它是單執行緒的有任何技術原因嗎?
對此不確定,但(受過教育的)猜測:
機器上的本地複制可以很容易地通過多執行緒方法實現,但問題是這是否會給您帶來很多好處,因為與 HD 之間的數據傳輸在很大程度上是一個順序過程。當然,您可以並行執行多個 HD,但並行程序之間的同步將非常重要,並且會非常複雜。
當您將 LAN 連接放入混合中時,情況再次不同。
SSH 連接是一個單執行緒的東西。您顯然可以並行執行多個連接,但 LAN 連接的本質是高度連續的(LAN 速度通常是最大的限制因素),因此這是否會獲得很多性能以及付出的努力是否值得值得商榷。
當然……對方是否能夠以同樣的方式處理這個問題?
如果接收 NAS 的核心數(更糟糕的情況:只有 1 個)比發送者少,那麼您可以輕鬆地為其承擔大量任務切換成本。
而且,如果 NAS 盒之間的物理磁碟結構不匹配,則還需要即時完成大量(非平凡的)數據重組。
再次:是否值得複雜和努力?