Є кілька аспектів цього питання, які частково були вирішені за допомогою інших інструментів, але, здається, не існує жодного інструменту, який надає всі функції, які ви шукаєте.
іотоп
Цей інструмент показує, які процеси споживають найбільше вводу / виводу. Але не вистачає варіантів показу конкретних імен файлів.
$ 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
робить для процесів, що змагаються за час процесора, за винятком дискового вводу / виводу. Ви можете зафіксувати його, щоб отримати 30 000 футів, використовуючи -a
перемикач, щоб він відображав накопичення за процесом у часі.
$ 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
фреймворк не містить деталей про файли, до яких можна отримати доступ. Тільки тип доступу, тому інформація про кількість даних, що переміщуються вперед і назад, не доступна за допомогою цих інструментів.
іостат
Показує загальну продуктивність (читає і записує) на основі доступу до певного пристрою (жорсткого диска) або розділу. Але не дає зрозуміти, які файли генерують цей доступ.
$ 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
Цей варіант занадто низький. Не вистачає видимості щодо того, до яких файлів та / або вкладень звертаються, а лише необроблені номери блоків.
$ 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%)
фетрас
Це нове доповнення до ядра Linux і привітання, тому воно є лише в нових дистрибутивах, таких як 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
Наведене вище показує вам ідентифікатор процесу, до якого здійснюється доступ до файлу, і до якого файла він отримує доступ, але він не дає вам загального використання пропускної здатності, тому кожен доступ не відрізняється від будь-якого іншого доступу.
То що робити?
Цей fatrace
параметр показує найбільш перспективне для НАРЕШЕННЯ надання інструменту, який може показати вам сукупне використання вводу-виводу диска на основі файлів, до яких звертаються, а не процесів, що здійснюють доступ.
Список літератури