Zfs

在 zvol 上的 mkfs.ntfs 期間消耗大量資源,為什麼(以及如何限制這一點)?

  • July 28, 2020

在我的機器mkfs.ntfs上速度很慢,導致大量使用資源,使我無法將機器用於其他任何事情。根據頂部它(或者更確切地說直接相關zvol的程序)正在使用每個可用執行緒的 80-90%,甚至是已經被其他程序(例如虛擬機)使用的執行緒。

這種大量的資源使用是mkfs.ntfs正常的嗎?如果是這樣,有沒有辦法限制mkfs.ntfs使用的執行緒數?我在想,如果我可以將它限制在幾個執行緒/核心,那麼其他程序將擁有資源,以便我可以繼續工作。

編輯附加資訊。

我使用 Ubuntu 20.04 作為我的主機作業系統,我正在格式化的捲是 ZFS zvol。這個 zvol 與一個 ext4 分區共享一個鏡像 VDEV,我執行 Kubuntu。

為了製作我跑的 zvol

sudo zfs create -V 400G -o compression=lz4 -o volblocksize=8k -s nvme-tank/ntfs-zvol

在評論中的建議之後,我嘗試使用nice來降低命令的優先級。它有一點幫助,但仍然導致我使用的 VM 極度滯後。

nice -n19 sudo mkfs.ntfs /dev/zd16 -c 8192

這是top. 這些zvol過程僅在mkfs命令期間發生,因此我假設它們直接相關。: 最佳

除非您告訴它將分區歸零並檢查壞扇區(至少在我的版本中這是預設設置),否則單個案例不應花費那麼長時間。檢查壞扇區是個好主意,但您可以使用選項跳過它-f

sudo mkfs.ntfs -f /dev/zd16 -c 8192

NTFS 格式化可能比 ext4 更慢(例如,它需要寫入更多數據來初始化磁碟結構),但絕不應該讓您的系統感覺無響應/資源受限。

我對 ZFS 不熟悉:可能它本身還沒有完成自己的內部任務(同步、鏡像、資料結構分配等),或者它是使用次優配置創建的,這就是您遇到這些症狀的原因? 或者您的系統缺少 RAM(上次我聽說 ZFS 需要更多 RAM 才能提高效率)?您的top輸出中填充了zvol程序,這意味著 ZFS 文件系統本身正在減慢您的系統速度,而不是mkfs.ntfs.

簡而言之,我們需要 ZFS 專家。我 99% 肯定mkfs.ntfs不是罪魁禍首。

Internet 上有很多討論表明您沒有考慮到一些 ZFS 複雜性:

引用自:https://unix.stackexchange.com/questions/600520