smartctl:暂停读取扫描磁盘的剩余部分

smartctl:暂停读取扫描磁盘的剩余部分

我已开始使用以下命令读取扫描磁盘:

smartctl -t select,10-11 -t afterselect,on -t pending,45 /dev/sda

然而,它似乎会降低磁盘性能。我预计当有磁盘活动时,读取扫描会(就像测试一样)被暂停。

我还预计读取扫描(如测试)将在服务器上无负载的情况下运行,但据了解,iostat -x -d 1读取测试似乎通过控制器。

这是正常的吗?当磁盘处于活动状态时,我可以暂停读取扫描吗(例如,仅在空闲 500​​ 毫秒时才运行读取扫描)?

答案1

根据 smartctl 手册页,您可以使用 中止非强制测试smartctl -X /dev/sda。根据该页面,您的选择性测试是非强制测试,因为您没有使用该-C选项。

但请注意,所有测试都会损害性能。尽管它们仅在磁盘空闲一段时间(我怀疑是几毫秒)时运行,但它仍然将磁盘头移动到另一个位置,因此磁盘必须寻找更多的真实数据活动。在繁忙的服务器上,我只能运行short测试,因为long测试需要数周时间,并且性能会一直受到影响。

答案2

很抱歉添加到这样一个旧线程,但我认为重要的是要注意固态硬盘运行自检可能不会减少。 SSD 没有可移动的读写磁头,并且自检可能是比服务 PC 发出的读或写请求更低优先级的任务。

我的 Windows PC 有一个 Crucial MX500 ssd C:,并且该电脑不间断地运行一个定期运行的脚本,smartctl -t select,0-MAX -t pending,0 C:以便 SSD 自测试几乎不间断地运行。 SSD性能并没有降低。

(这些自测试的目的是减轻导致过度写入放大的关键错误,该错误与一个更广为人知的名为“Bogus Current Pending Sectors”的关键错误相关,您可以通过谷歌搜索该错误。显然,该错误的进程是优先级较低的后台任务自测试过程中,因此 SSD 对其自身的错误写入仅在自测试之间的短暂暂停期间发生。暂停的目的是允许 SSD 偶尔运行对 SSD 的健康至关重要的低优先级进程。例如,磨损均衡。)

当我通过自测试运行 CrystalDiskMark 基准测试时,我发现 SSD 的性能略高于 Crucial 为全新 MX500 发布的速度规格。因为自测试会阻止 SSD 进入低功耗模式(这可以通过观察自测试对 SSD 开机时间智能属性的影响来推断),所以我的理论是,自测试可以让 SSD 节省一点时间在处理 PC 读或写请求时必须从低功耗模式切换到正常模式。

相关内容