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

Gou*_*ash 3 performance io symlink hard-disk

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

/dev/sdb2       1.8T  443G  1.3T  26% /home1
/dev/sda3       1.8T  1.7T   44G  98% /home
Run Code Online (Sandbox Code Playgroud)

符号链接poiting/home/$users/home1/$users(约50个链接,恒IO流为/ home / *),这会不会影响的IO都在sda3的(/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
Run Code Online (Sandbox Code Playgroud)

der*_*ert 6

有可能,但可能性很小。

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

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