从驱动器 A 到驱动器 B 的符号链接是否会影响驱动器 A 上的 I/O?

从驱动器 A 到驱动器 B 的符号链接是否会影响驱动器 A 上的 I/O?

我想知道通过符号链接的 IO 是否会影响主机驱动器上的 IO,即使它指向单独的驱动器?我的设置是,

/dev/sdb2       1.8T  443G  1.3T  26% /home1
/dev/sda3       1.8T  1.7T   44G  98% /home

符号链接指向/home/$users/home1/$users大约 50 个链接,持续 IO 流到 /home/*),这会影响 sda3 上的 IO ( /home/),因为您可以看到 sda3 需要所有 IO 给自己,其中 98% 已满,并且高负载(34% iowait :/) 那么,对于 34% iowait,删除符号链接并直接查询 /home1/ 是否可以减少我的 iowait?

Linux 3.2.13-grsec-xxxx-grs-ipv6-64 (sb7)       17/10/12        _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.27    0.00    2.87   31.50    0.00   64.36

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda             110.61   471.54  167.28   18.98 11076.29  1964.83   140.04     8.35   44.30   23.27  229.66   5.36  99.78
sdb               0.38     0.75   80.00    5.16  4227.02  2143.14   149.59     1.99   23.38   10.69  219.99   3.26

答案1

有可能,但可能性很小。

基本上,符号链接的工作方式是在路径名解析期间,内核读取符号链接,并使用它来重写路径名。因此,每次内核解析通过它的路径时,理论上它都会读取符号链接。还有所有目录。但实际上,它始终在缓存中,因此这些读取都不会到达磁盘。

如果这会导致 atime 更新,有可能(我真的不确定)。如果确实如此,并且您没有使用relatime或运行noatime,那么这些写入可能会增加相当多的负载。如果您正在运行完整的 atime 更新,我建议至少切换到relatime(如果可能)。这可能会对您的 I/O 负载有所帮助。有关详细信息,请参阅mount(8)联机帮助页。

相关内容