Có một số khía cạnh cho câu hỏi này đã được giải quyết một phần thông qua các công cụ khác, nhưng dường như không có một công cụ nào cung cấp tất cả các tính năng bạn đang tìm kiếm.
iotop
Công cụ này cho thấy các quá trình đang tiêu thụ nhiều I / O nhất. Nhưng nó thiếu các tùy chọn để hiển thị tên tệp cụ thể.
$ 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]
Theo mặc định, nó thực hiện những gì thường xuyên top
đối với các quá trình ganh đua thời gian của CPU, ngoại trừ I / O đĩa. Bạn có thể dỗ nó để cung cấp cho bạn chế độ xem 30.000 feet bằng cách sử dụng công -a
tắc để nó hiển thị tích lũy theo quy trình, theo thời gian.
$ 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 * công cụ (inotify, iwatch, v.v.)
Các công cụ này cung cấp quyền truy cập vào các sự kiện truy cập tệp, tuy nhiên chúng cần được nhắm mục tiêu cụ thể đến các thư mục hoặc tệp cụ thể. Vì vậy, chúng không hữu ích khi cố gắng theo dõi truy cập tệp giả mạo bằng một quy trình không xác định, khi gỡ lỗi các vấn đề về hiệu suất.
Ngoài ra inotify
khung không cung cấp bất kỳ chi tiết nào về các tệp được truy cập. Chỉ có loại quyền truy cập, vì vậy không có thông tin nào về lượng dữ liệu được di chuyển qua lại có sẵn, sử dụng các công cụ này.
i điều hòa
Hiển thị hiệu suất tổng thể (đọc & ghi) dựa trên quyền truy cập vào một thiết bị nhất định (ổ cứng) hoặc phân vùng. Nhưng không cung cấp bất kỳ cái nhìn sâu sắc nào về các tập tin đang tạo ra các truy cập này.
$ 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
Tùy chọn này là mức quá thấp. Nó thiếu khả năng hiển thị các tập tin và / hoặc inodes đang được truy cập, chỉ là số khối thô.
$ 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%)
béo
Đây là một bổ sung mới cho Linux Kernel và được hoan nghênh, vì vậy nó chỉ có trong các bản phát hành mới hơn như Ubuntu 12.10. Hệ thống Fedora 14 của tôi đã thiếu nó 8-).
Nó cung cấp cùng một quyền truy cập mà bạn có thể có được thông qua inotify
mà không phải nhắm mục tiêu một thư mục và / hoặc tệp cụ thể.
$ 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
Ở trên cho bạn thấy ID tiến trình đang thực hiện truy cập tệp và tệp nào đang truy cập, nhưng nó không cung cấp cho bạn bất kỳ mức sử dụng băng thông chung nào, vì vậy mỗi quyền truy cập không thể phân biệt với bất kỳ quyền truy cập nào khác.
Vậy lam gi?
Các fatrace
tùy chọn chương trình hứa hẹn nhất cho cuôi cung cấp một công cụ có thể cho bạn sử dụng tổng hợp của đĩa I / O dựa trên các tập tin được truy cập, chứ không phải là quá trình làm việc truy cập.
Tài liệu tham khảo