在我的机器上mkfs.ntfs
速度很慢,导致大量使用资源,阻止我将机器用于其他任何事情。根据 top 的说法,它(或者更确切地说是直接相关的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
取消命令的优先级。它有一点帮助,但仍然导致我使用的虚拟机极度延迟。
nice -n19 sudo mkfs.ntfs /dev/zd16 -c 8192
答案1
NTFS 格式化可能比 ext4 慢(例如,它需要写入更多数据来初始化磁盘结构),但绝不应该让您的系统感觉反应迟钝/资源受限。
我不熟悉 ZFS:可能它本身尚未完成自己的内部任务(同步、镜像、数据结构分配等),或者它是使用次优配置创建的,这就是您遇到这些症状的原因?或者您的系统缺少 RAM(上次我听说 ZFS 需要更多 RAM 才能提高效率)?您的top
输出中充满了zvol
进程,这意味着 ZFS 文件系统本身正在减慢您的系统速度,而不是mkfs.ntfs
.
简而言之,我们需要 ZFS 专家。我99%肯定mkfs.ntfs
不是罪魁祸首。
Internet 上有很多讨论,表明您没有考虑到 ZFS 的一些复杂性:
答案2
除非你告诉它清零分区并检查坏扇区(至少在我的版本中这是默认设置),否则单个案例不应该花那么长时间。检查坏扇区是个好主意,但是你可以使用选项跳过它-f
sudo mkfs.ntfs -f /dev/zd16 -c 8192