能否查看btrfs defrag进度?执行后仅显示待整理文件无实际动作
查看Btrfs Defrag操作进度的方法
好问题!我之前折腾Btrfs的时候也碰到过这个困惑——明明执行了defrag命令,要么只看到一堆待处理文件列表,要么没任何实时反馈,完全不知道它到底在干活没。别着急,给你几个实用的方法来监控进度:
开启 verbose 模式实时追踪
这是最直接的办法,给btrfs filesystem defrag命令加上-v(verbose)参数,它就会实时输出正在处理的文件名,你能清晰看到每一步的进展。比如递归整理某个挂载点的命令可以写成:btrfs filesystem defrag -v -r /your/mount/path要是你之前没加这个参数,重新执行就行——Btrfs默认只会处理碎片率超过阈值的文件,不会做无用功。
用系统工具监控进程活动
如果defrag已经在后台运行,没法加-v参数,那就用系统工具来监控:- 用
iotop命令,找到名为btrfs-defrag的进程,查看它的读写速率,能直观判断它是否在持续工作,以及大概的负载情况。 - 用
ps aux | grep btrfs-defrag确认进程是否还在运行,如果进程存在,说明defrag还在进行中;如果进程消失了,那就是已经处理完了。
- 用
对比碎片率变化(半实时/事后验证)
你可以在defrag执行前和中途(不建议强行终止进程,可能损坏文件)运行btrfs filesystem fragmentation /target/path,对比输出的碎片率数值变化,来判断整体的整理进度。不过这个方法更适合确认最终效果,实时性不强。
另外补充个小提醒:如果你的defrag命令没加-f(force)参数,Btrfs只会自动跳过碎片率较低的文件,有时候看起来列出了一堆待处理文件,但实际大部分都不需要整理,进程很快就结束了,这也会让你产生“没执行操作”的错觉。如果确实需要强制整理所有文件,可以加上-f参数,不过耗时会更长。
内容的提问来源于stack exchange,提问作者Jasmine Lognnes
相关产品推荐
相关产品推荐

