系统相关
首页 > 系统相关> > linux – 减少Ubuntu中的坏块重试/等待时间

linux – 减少Ubuntu中的坏块重试/等待时间

作者:互联网

如何减少IO等待时间和重试次数,以便操作系统不会不断尝试写入故障驱动器?

我有一个系统,我用它来制作演示内容的副本,这些内容可以通过常规的SATA桌面硬盘驱动器借给客户.我们通过SAS一次连接多个驱动器,并使用脚本将内容复制到它们.

由于驱动器被借出,有时会有一些损坏,但我不知道它们是否已损坏,因此下次该驱动器在复制操作中重复使用时,随着系统重新尝试IO到该驱动器,它会减慢其他驱动器的速度.有时可能需要几个小时才能发现坏驱动器并将其移除.移除驱动器后,其余驱动器开始以正常速度写入.

我不关心恢复坏驱动器.我只需要将它们除掉,这样它们就不会减慢其他一切.

我也在研究badblocks和smartmontools,并考虑在开始编写之前对驱动器进行预检查.

操作系统:Ubuntu Linux(12.04 lts)

解决方法:

我之前没有使用过这个可调参数,但你可能想调整有问题的驱动器的eh_timeout(错误处理超时):

[root@localhost device]# cat /sys/block/sda/device/eh_timeout
10
[root@localhost device]# 

以上显示sda设置为10秒.来自红帽知识库:

In certain storage configurations (for example, configurations with
many LUNs), the SCSI error handling code can spend a large amount of
time issuing commands such as TEST UNIT READY to unresponsive storage
devices. A new sysfs parameter, eh_timeout, has been added to the SCSI
device object, which allows configuration of the timeout value for
TEST UNIT READY and REQUEST SENSE commands used by the SCSI error
handling code. This decreases the amount of time spent checking these
unresponsive devices. The default value of eh_timeout is 10 seconds,
which was the timeout value used prior to adding this functionality.

标签:performance,linux,io,badblocks,hard-disk
来源: https://codeday.me/bug/20190809/1629877.html