GNU/Linux >> Belajar Linux >  >> Linux

Saya memiliki stat io tinggi. Tulisan tinggi. Tapi file apa yang sedang ditulis?

Nah, Anda dapat mencoba perintah berikut yang bekerja untuk saya di RHEL6:

1) Perangkat apa pun yang Anda lihat di output "iostat" melakukan lebih banyak I/O, gunakan dengan fuser perintah sebagai berikut:

fuser -uvm device

2) Anda akan mendapatkan daftar proses dengan nama pengguna yang menyebabkan lebih banyak I/O. Pilih PIDS tersebut dan gunakan di lsof perintah sebagai berikut:

lsof -p PID | more

3) Anda akan mendapatkan daftar file/direktori beserta pengguna yang melakukan I/O maksimum.


Sepertinya tidak ada alat untuk mengetahui throughput I/O per file selain dalam proses menggunakan file. Namun ada cara untuk mengetahui throughput proses I/O.

iotop - Ini adalah utilitas seperti top/iftop yang menunjukkan throughput proses I/O.

Setelah menunjukkan proses mana yang mengalami I/O berat, gunakan berikut ini untuk mencari tahu file apa yang sedang digunakan

lsof -c <process name>

Itu akan mempersempit ruang lingkup dan membantu menentukan sumbernya.


Anda dapat menggunakan inotifywait dari inotify-tools untuk mengetahui file mana yang sedang ditulis. Ini tidak akan memberi tahu Anda berapa banyak data yang sedang ditulis, tetapi setidaknya akan memberi tahu Anda file apa yang sedang ditulis saat itu terjadi.

Sebagai contoh, perintah ini akan mencetak nama file segera setelah dibuat, diubah, atau dihapus di /tmp :

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /tmp
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/ CREATE test
/tmp/ MODIFY test

Sayangnya Anda harus menebak direktori mana yang berisi file yang sedang ditulis. Ini gagal jika Anda mencoba menggunakannya di direktori root, meskipun tampaknya itu dapat diganti:

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /
Setting up watches.  Beware: since -r was given, this may take a while!
Failed to watch /; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.

Linux
  1. Gunakan terminal Linux untuk melihat file apa yang ada di komputer Anda

  2. N Setara Dengan Top Tapi Untuk Jaringan I/o?

  3. Konfigurasikan flash drive dalam instans I/O Tinggi sebagai drive data

  1. Apa itu file jarang di Linux

  2. Temukan file apa yang ada dalam paket di Ubuntu

  3. Dalam bahasa apa Windows, Mac OS X dan Linux ditulis?

  1. Apa yang setara dengan Unix/Linux dari I/O Terdaftar?

  2. Apa perbedaan antara lsof dan netstat di linux?

  3. Apa sebenarnya header kernel Linux itu?