我已经开始读取-扫描磁盘使用:
smartctl -t select,10-11 -t afterselect,on -t pending,45 /dev/sda然而,它似乎扼杀了磁盘的性能。我曾料到,当磁盘活动时,读取扫描将被暂停(就像测试一样)。
我还料到读扫描(就像测试一样)会在服务器上没有负载的情况下运行,但是根据iostat -x -d 1的说法,读测试似乎要通过控制器。
这是正常的吗?当磁盘处于活动状态时,我是否可以挂起读扫描(例如,只有在空闲500 ms时才运行读扫描)?
发布于 2012-05-23 06:29:00
根据smartctl手册页,您可以使用smartctl -X /dev/sda中止非捕获测试.根据该页面,您的选择性测试是非捕获的,因为您没有使用-C选项。
但是请注意,所有的测试都会损害性能。虽然它们只在磁盘空闲一段时间(我怀疑有几毫秒)时才运行,但它仍然将磁盘头移动到另一个位置,因此磁盘必须寻找更多的实际数据活动。在繁忙的服务器上,我只能运行short测试,因为long测试需要数周时间,而且性能将一直受到影响。
发布于 2020-11-03 15:31:58
很抱歉添加到这样一个旧线程,但我认为重要的是要注意的是,ssd的性能可能不会因为运行自我测试而降低。ssd没有可移动的读写头,自我测试可能比处理pc发出的读或写请求的优先级要低。
我的Windows有一个关键的MX500 ssd:,而PC运行一个不间断脚本,定期运行smartctl -t select,0-MAX -t pending,0 C:,这样ssd自我测试几乎不间断地运行。ssd的性能没有降低。
(这些自我测试的目的是为了减轻一个导致过度写入放大的关键错误,这与一个更广为人知的称为“伪当前待定扇区”的关键错误相关,你可以在谷歌上搜索。显然,bug的过程比自测试过程优先级更低,因此由ssd编写的bug只在自我测试之间的短暂停顿期间发生。暂停的目的是允许ssd偶尔运行可能对ssd的健康至关重要的低优先级进程。例如,磨平。)
当我运行自测试运行的CrystalDiskMark基准测试时,我发现ssd的性能略微超过了全新MX500所发布的速度规格。由于自我测试阻止ssd进入其低功耗模式--这可以通过观察自我测试对ssd的工时智能属性的影响来推断--我的理论是,自我测试允许ssd在处理pc读写请求时不必从低功耗模式切换到正常模式,从而节省一些时间。
https://unix.stackexchange.com/questions/39188
复制相似问题