智能长测试 - 对繁忙的服务器的性能有何影响?

智能长测试 - 对繁忙的服务器的性能有何影响?

我有一台繁忙的服务器,配置了 RAID 1。该应用程序(以 PHP 运行)对数据库 (MariaDB) 的读写非常密集。

cronjobsmartctl每天运行简短的测试并检查smartctl -H和的输出mdadm -D

有时我想运行一个长时间的测试,但我担心它对性能的影响。我读到它可能需要几个小时才能完成。如果它在运行时导致服务器性能下降,我的用户将受到影响 5 小时以上。

因此,这里有几个问题:

1)长时间的智能测试通常会对用户的表现产生重大影响吗?

2) 因为我有 RAID 1 并做了短测试,是否仍然需要进行长测试?

3)如果我发现长时间测试对服务器性能造成了问题,有没有办法停止它?

答案1

  1. 这取决于什么。(哈哈哈)取决于什么?您的应用程序使用磁盘的程度以及您的应用程序可以利用多少缓存。这里没有什么魔法——如果驱动器正在接受测试,它就无法以与未接受测试时相同的最大速度和低延迟提供服务。但是,如果您的最低延迟要求低于测试的影响,那么就应用程序影响而言,这没什么影响。
  2. 可能不会。大型企业存储公司(EMC、IBM、NetApp 等)根据平均故障间隔时间更换驱动器,而不仅仅是等待驱动器固件报告问题。短测试首先测试所有可能出现故障的驱动器。长测试与短测试进行相同的测试,只是它们没有时间限制。假设所有驱动器都会出现故障,但在保修期过后,出现故障的可能性会更高。
  3. 是的,前提是驱动器支持中止(或“暂停”)离线收集。

来自'smartctl(8)'手册页:

       -X, --abort
              Aborts  non-captive  SMART  Self  Tests.  Note that this command
              will abort the Offline Immediate Test routine only if your  disk
              has the "Abort Offline collection upon new command" capability.

(我认为如果您看到“根据新命令暂停离线收集”,您也可以中止;我认为手册页需要更新。)您可以通过以下方式检查该功能:

smartctl -x <device>

相关内容