Bu soruya kısmen başka araçlar aracılığıyla değinilen birkaç yön var, ancak aradığınız tüm özellikleri sağlayan tek bir araç görünmüyor.
iotop
Bu araçlar, hangi işlemlerin en fazla G / Ç kullandığını gösterir. Ancak, belirli dosya adlarını gösterme seçenekleri yoktur.
$ 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]
Varsayılan olarak, top
disk G / Ç hariç, CPU süresi için çalışan işlemler için düzenli olanları yapar. -a
Düğmeyi kullanarak 30.000 ayak görünümü elde etmek için zamana göre bir birikim gösterecek şekilde koaksiyel olarak kullanabilirsiniz .
$ 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 * araçlar (inotify, iwatch, vs.)
Bu araçlar dosya erişim olaylarına erişim sağlar, ancak belirli dizinlere veya dosyalara özel olarak yönelik olmaları gerekir. Bu nedenle, performans sorunlarını ayıklarken, sahte bir dosya erişimini bilinmeyen bir işlemle izlemeye çalışırken bu işe yaramazlar.
Ayrıca, inotify
çerçeve erişilen dosyalar hakkında herhangi bir ayrıntı sağlamaz. Yalnızca erişim türü, bu araçlar kullanılarak ileri ve geri taşınan veri miktarı hakkında bilgi bulunmuyor.
iostat
Belirli bir aygıta (sabit sürücü) veya bölüme erişimi temel alarak genel performansı gösterir (okuma ve yazma). Ancak, dosyaların bu erişimleri sağladığı hakkında bir fikir vermez.
$ 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
Bu seçenek çok düşük seviyede. Hangi ham dosyalara ve / veya inode'lara erişildiğine dair görünürlükten yoksundur, sadece ham blok sayılarıdır.
$ 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
Bu, Linux Çekirdeğine yeni bir ektir ve memnuniyetle karşılanır, bu yüzden sadece Ubuntu 12.10 gibi yeni dağıtımlarda. Fedora 14 sistemimde 8- yoktu.
inotify
Belirli bir dizini ve / veya dosyaları hedeflemenize gerek kalmadan erişebileceğiniz aynı erişimi sağlar.
$ 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
Yukarıdakiler, dosya erişimini yapan ve hangi dosyaya eriştiğini gösteren işlem kimliğini gösterir, ancak genel bant genişliği kullanımı sağlamaz, bu nedenle her erişim başka bir erişim için ayırt edilemez.
Peki ne yapmalı?
Bu fatrace
seçenek, SONUÇ olarak , erişen işlemleri yerine, erişilen dosyalara dayalı olarak disk G / Ç kullanımını toplam kullanımını gösteren bir araç sağlama konusunda en büyük sözü gösterir .
Referanslar