Perangkat lunak manajemen dokumen saya melakukan banyak IO dan saya ingin tahu file mana yang paling diakses.
Apakah ada alat Linux yang akan memberi saya daftar file yang mengkonsumsi IO teratas, seperti iotop tetapi untuk file, setiap beberapa detik?
Itu bisa terlihat seperti:
$ thetool
THRPUT R/W/SWP FILE
40MB/s write /usr/alfresco/repo/1283421/1324928.doc
12MB/s read /usr/alfresco/cache/3928dh29f8if
11MB/s read /tmp/239398hf2f024f472.tmp
Aku melihat ke dalam halaman manual dari iotop
, lsof
, strace
dan mereka tampaknya tidak menawarkan fitur tersebut.
monitoring
disk-usage
Nicolas Raoul
sumber
sumber
Jawaban:
Saya pikir metrik "jumlah byte" Anda adalah yang salah. Pertimbangkan dua akses. Satu membaca 10MB dari file. Yang lain membaca setiap byte 512 file untuk 10MB pertama. "Jumlah byte" akan menjadi 512 kali lebih tinggi untuk akses pertama dibandingkan dengan yang kedua. Namun mereka berdua akan menempatkan beban yang sama persis pada subsistem I / O.
Jika Anda dapat menerima "jumlah operasi", yang hampir sama baiknya atau seburuk "jumlah byte", maka Anda memiliki sesuatu yang dapat Anda ukur. The
inotifywatch
Program melakukan ini, dan kemungkinan bagian dari distribusi Andainotify-tools
paket.Ini akan segera memberi tahu Anda file mana yang terdiri dari sebagian besar akses, dan kemungkinan akan memungkinkan Anda untuk memecahkan masalah Anda yang sebenarnya.
sumber
Pertama-tama, untuk mengklarifikasi: Tidak ada yang namanya "IO mengkonsumsi file" . File adalah objek pasif. Ini adalah program yang memicu IO (biasanya dengan membaca / menulis file) dan mereka dapat mengakses file lebih atau kurang sering. Jadi throughput yang Anda sebutkan berkenaan dengan file sebenarnya tidak banyak artinya. Informasi yang berguna mengenai file dapat berupa seberapa sering mereka diakses dan dimodifikasi. Ini dapat dipantau menggunakan
notifywait -m /some/file/or/directory
(dari alat tidak sah ) atau sistem yang lebih kompleks seperti FAM atau Gamin .sumber