이 질문에는 다른 도구를 통해 부분적으로 해결 된 몇 가지 측면이 있지만 원하는 모든 기능을 제공하는 단일 도구는 아닙니다.
아이오 톱
이 도구는 어떤 프로세스가 가장 많은 I / O를 소비하는지 보여줍니다. 그러나 특정 파일 이름을 표시하는 옵션이 없습니다.
$ sudo iotop
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
5 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u:0]
6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]
7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]
기본적으로 top
디스크 I / O를 제외하고 CPU 시간 동안 경쟁하는 프로세스에서 정기적으로 수행하는 작업을 수행합니다. -a
시간이 지남에 따라 프로세스별로 누적을 표시하도록 스위치 를 사용하여 3 만 피트의 시야를 제공하도록 동축 할 수 있습니다 .
$ sudo iotop -a
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
258 be/3 root 0.00 B 896.00 K 0.00 % 0.46 % [jbd2/dm-0-8]
22698 be/4 emma 0.00 B 72.00 K 0.00 % 0.00 % chrome
22712 be/4 emma 0.00 B 172.00 K 0.00 % 0.00 % chrome
1177 be/4 root 0.00 B 36.00 K 0.00 % 0.00 % cupsd -F
22711 be/4 emma 0.00 B 120.00 K 0.00 % 0.00 % chrome
22703 be/4 emma 0.00 B 32.00 K 0.00 % 0.00 % chrome
22722 be/4 emma 0.00 B 12.00 K 0.00 % 0.00 % chrome
i * 도구 (inotify, iwatch 등)
이 도구는 파일 액세스 이벤트에 대한 액세스를 제공하지만 특정 디렉토리 또는 파일을 대상으로해야합니다. 따라서 성능 문제를 디버깅 할 때 알 수없는 프로세스로 악성 파일 액세스를 추적하려고 할 때 도움이되지 않습니다.
또한 inotify
프레임 워크는 액세스되는 파일에 대한 특정 정보를 제공하지 않습니다. 이러한 도구를 사용하면 액세스 유형 만 가능하므로 앞뒤로 이동하는 데이터 양에 대한 정보를 사용할 수 없습니다.
iostat
주어진 장치 (하드 드라이브) 또는 파티션에 대한 액세스를 기반으로 전반적인 성능 (읽기 및 쓰기)을 표시합니다. 그러나 어떤 파일이 이러한 액세스를 생성하는지에 대한 통찰력을 제공하지는 않습니다.
$ iostat -htx 1 1
Linux 3.5.0-19-generic (manny) 08/18/2013 _x86_64_ (3 CPU)
08/18/2013 10:15:38 PM
avg-cpu: %user %nice %system %iowait %steal %idle
18.41 0.00 1.98 0.11 0.00 79.49
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
0.01 0.67 0.09 0.87 1.45 16.27 37.06 0.01 10.92 11.86 10.82 5.02 0.48
dm-0
0.00 0.00 0.09 1.42 1.42 16.21 23.41 0.01 9.95 12.22 9.81 3.19 0.48
dm-1
0.00 0.00 0.00 0.02 0.01 0.06 8.00 0.00 175.77 24.68 204.11 1.43 0.00
blktrace
이 옵션이 너무 낮습니다. 원시 블록 번호만으로 액세스 할 파일 및 / 또는 inode에 대한 가시성이 부족합니다.
$ sudo blktrace -d /dev/sda -o - | blkparse -i -
8,5 0 1 0.000000000 258 A WBS 0 + 0 <- (252,0) 0
8,0 0 2 0.000001644 258 Q WBS [(null)]
8,0 0 3 0.000007636 258 G WBS [(null)]
8,0 0 4 0.000011344 258 I WBS [(null)]
8,5 2 1 1266874889.709032673 258 A WS 852117920 + 8 <- (252,0) 852115872
8,0 2 2 1266874889.709033751 258 A WS 852619680 + 8 <- (8,5) 852117920
8,0 2 3 1266874889.709034966 258 Q WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 4 1266874889.709043188 258 G WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 5 1266874889.709045444 258 P N [jbd2/dm-0-8]
8,0 2 6 1266874889.709051409 258 I WS 852619680 + 8 [jbd2/dm-0-8]
8,0 2 7 1266874889.709053080 258 U N [jbd2/dm-0-8] 1
8,0 2 8 1266874889.709056385 258 D WS 852619680 + 8 [jbd2/dm-0-8]
8,5 2 9 1266874889.709111456 258 A WS 482763752 + 8 <- (252,0) 482761704
...
^C
...
Total (8,0):
Reads Queued: 0, 0KiB Writes Queued: 7, 24KiB
Read Dispatches: 0, 0KiB Write Dispatches: 3, 24KiB
Reads Requeued: 0 Writes Requeued: 0
Reads Completed: 0, 0KiB Writes Completed: 5, 24KiB
Read Merges: 0, 0KiB Write Merges: 3, 12KiB
IO unplugs: 2 Timer unplugs: 0
Throughput (R/W): 0KiB/s / 510KiB/s
Events (8,0): 43 entries
Skips: 0 forward (0 - 0.0%)
Fatrace
이것은 Linux Kernel에 새로 추가되고 환영받는 것이므로 Ubuntu 12.10과 같은 최신 배포판에만 있습니다. 내 Fedora 14 시스템에는 8-)가 부족했습니다.
inotify
특정 디렉토리 및 / 또는 파일을 대상으로하지 않고도 얻을 수있는 동일한 액세스를 제공 합니다.
$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so
위는 파일 액세스를 수행하는 프로세스 ID와 액세스하는 파일을 보여 주지만 전체 대역폭 사용량을 제공하지 않으므로 각 액세스는 다른 액세스와 구분할 수 없습니다.
그래서 뭐 할까?
fatrace
옵션 쇼 가장 약속을 마침내 당신에게 디스크의 총 사용을 보여줄 수있는 도구를 제공하는 I / O 파일이 아니라 액세스를 수행하는 프로세스보다 액세스하는 기반으로.
참고 문헌