별도의 드라이브를 가리키더라도 심볼릭 링크를 통한 IO가 호스트 드라이브의 IO에 영향을 미치는지 궁금합니다. 내 설정은,
/dev/sdb2 1.8T 443G 1.3T 26% /home1
/dev/sda3 1.8T 1.7T 44G 98% /home
심볼릭 링크는 /home/$users
( /home1/$users
/home/*에 대한 지속적인 IO 흐름이 있는 약 50개의 링크)를 가리키며 이는 sda3의 IO에 영향을 미칩니다 /home/
( 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
있으면 해당 쓰기로 인해 상당한 로드가 추가될 수 있습니다. 전체 시간 업데이트를 실행하는 경우 최소한 relatime
(가능한 경우)로 전환하는 것이 좋습니다. 이는 I/O 로드에 도움이 될 수 있습니다. 자세한 내용은 mount(8)
맨페이지를 참조하십시오.