it-swarm-id.com

Cari tahu proses apa yang ditulis ke hard drive

Di Lenovo T400 dan Ubuntu saya, lampu untuk penulisan hard drive terus berkedip. Saya bertanya-tanya apakah di Linux dimungkinkan untuk mengetahui proses apa yang saya/O lakukan pada hard drive? Sama seperti dengan top, Anda dapat mengetahui proses apa yang menggunakan sebagian besar CPU dan memori.

33
Tim

Iotop adalah alat yang baik untuk apa yang Anda inginkan. Hal ini juga memungkinkan seseorang untuk menampilkan jumlah akumulasi I/O pada salah satu DISK READ, DISK WRITE, SWAPIN, dan IO (persentase keseluruhan). Ini adalah melalui antarmuka yang bagus:

  • Anda cukup menekan a pada keyboard, dan itu akan mengurutkan proses paling lapar di atas.
  • Membalik urutan, Anda cukup menekan r.
  • Jika Anda ingin mengurutkan berdasarkan kolom lain, Anda cukup menekan tombol kiri/kanan.

Seperti top, presentasi agak sibuk. Hal lain adalah ia tidak memiliki banyak sekali opsi yang top telah (mis. Saya tidak bisa memilih untuk menyembunyikan kolom saya tidak tertarik), tetapi alat ini lebih dari cukup baik untuk tujuan spesifiknya.

42
tshepang

Anda dapat menggunakan lsof ( man lsof ). Berikut ini akan mengembalikan daftar semua file yang terbuka untuk ditulis:

lsof | grep -e "[[:digit:]]\+w"
15
James Sumners

Gunakan strace.

2
user541686

Khusus untuk aktivitas disk yang rendah, perlu untuk menggunakan iotop dalam mode batch, untuk mencegah jalur akses pendek menghilang dengan cepat. Jawabannya dengan Bagaimana saya mencatat sistem file baca/tulis dengan nama file di Linux? menunjukkan bagaimana melakukan ini.

Sejauh ini iotop adalah solusi keseluruhan terbaik. Perintah berikut memberi Anda output waktu nyata dari semua proses menggunakan disk.

iotop -bktoqqq -d .5

where: -b     is batch mode
       -k     is kilobytes/s
       -t     adds timestamp
       -o     only show processes or threads actually doing I/O
       -qqq   removes output headers
       -d .5  updates every .5 seconds

Setelah Anda memiliki id proses, Anda juga dapat menemukan file

 lsof -p $PID
2
Frank Breitling