avg-cpu: %user %nice %system %iowait %steal %idle
11.50 0.02 5.38 0.07 0.00 83.04
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdc 0.01 89.92 0.26 41.59 3.36 457.19 22.01 0.23 5.60 0.09 0.38
sdb 0.10 15.59 0.40 14.55 8.96 120.57 17.33 0.04 2.91 0.07 0.11
sda 0.13 45.37 0.96 8.09 20.06 213.56 51.63 0.02 2.64 0.16 0.14
sde 0.01 31.83 0.09 11.34 0.94 103.56 18.29 0.04 3.52 0.14 0.16
sdd 0.01 48.01 0.13 19.81 1.58 202.16 20.44 0.11 5.62 0.13 0.25
어떤 파일에 기록되고 있는지 알 수 있는 방법이 있습니까? 457KB/초
게다가 이 리눅스 머신에도 같은 문제가 있습니다.
avg-cpu: %user %nice %system %iowait %steal %idle
20.50 0.00 46.48 20.74 0.00 12.28
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.17 11.61 0.99 3.51 36.65 59.43 42.70 0.10 23.20 3.84 1.73
sdb 0.55 224.18 24.30 97.45 246.48 1287.12 25.19 3.96 32.53 7.88 95.91
sdd 0.53 226.75 25.56 90.96 283.50 1271.69 26.69 3.43 29.44 8.22 95.75
sdc 0.00 1.76 0.28 0.06 4.73 7.26 70.41 0.00 12.00 2.12 0.07
dm-0 0.00 0.00 1.11 14.77 36.41 58.92 12.01 1.00 62.86 1.09 1.74
dm-1 0.00 0.00 0.04 0.12 0.17 0.49 8.00 0.00 21.79 2.47 0.04
dm-2 0.00 0.00 0.01 0.00 0.05 0.01 8.50 0.00 7.90 2.08 0.00
콘텐츠를 호스팅하지 않는 서버의 경우 초당 1200개의 쓰기 요청
답변1
RHEL6에서 나에게 효과적이었던 다음 명령을 시도해 볼 수 있습니다.
"iostat" 출력에서 더 많은 I/O를 수행하는 장치를 볼 때마다 다음과 같은
fuser
명령(psmisc
패키지에서)과 함께 사용하십시오.고정-UVM 장치
더 많은 I/O를 발생시키는 사용자 이름이 포함된 프로세스 목록이 표시됩니다. 이러한 PIDS를 선택하고
lsof
다음과 같이 명령에 사용합니다.lsof -p PID | lsof -p PID |
파일/디렉터리 목록과 가장 많은 I/O를 수행하는 사용자 목록이 표시됩니다.
답변2
파일을 사용하는 프로세스 내 외에는 각 파일의 I/O 처리량을 알아내는 도구가 없는 것 같습니다. 그러나 프로세스 I/O 처리량을 알아내는 몇 가지 방법이 있습니다.
iotop - 프로세스 I/O 처리량을 표시하는 top/iftop과 유사한 유틸리티입니다.
I/O가 많은 프로세스를 확인한 후 다음 명령을 사용하여 어떤 파일이 사용되고 있는지 확인합니다.
lsof -c <process name>
이렇게 하면 범위가 좁아지고 출처를 정확히 찾아내는 데 도움이 됩니다.
답변3
inotifywait
from을 사용하면 inotify-tools
정확히 어떤 파일에 기록되고 있는지 알아낼 수 있습니다. 이는 얼마나 많은 데이터가 기록되고 있는지 알려주지는 않지만 최소한 어떤 파일이 기록되고 있는지 알려줍니다.
예를 들어, 이 명령은 다음 위치에서 파일이 생성, 수정 또는 삭제되는 즉시 파일 이름을 인쇄합니다 /tmp
.
$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /tmp
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
/tmp/ CREATE test
/tmp/ MODIFY test
불행하게도, 쓰려는 파일이 어느 디렉토리에 있는지 추측해야 합니다. 루트 디렉터리에서 이를 사용하려고 하면 실패할 것입니다. 물론 재정의할 수는 있지만 다음과 같습니다.
$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /
Setting up watches. Beware: since -r was given, this may take a while!
Failed to watch /; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.
답변4
csysdig. https://github.com/draios/sysdig/wiki/Csysdig-overview
심지어 이를 수행하는 방법을 보여주는 비디오 링크도 제공합니다. https://www.youtube.com/watch?v=UJ4wVrbP-Q8