GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya tahu apa yang memutar drive saya?

Di Linux, fanotify ish terbaru syscall mengaktifkan utilitas bagus bernama fatrace yang menginformasikan proses mana yang mengenai file mana baik untuk keseluruhan sistem atau partisi tertentu. Pasti alat favorit saya untuk hal semacam ini:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

Anda dapat memeriksa http://samwel.tk/laptop_mode/ . Meskipun halaman ini pada dasarnya bukan tentang masalah Anda, tetapi memberikan gambaran keseluruhan yang baik tentang cara kerja dan ide IO, cara membisukan disk Anda dengan mematikannya.

Jawaban singkat untuk masalah Anda:

echo 1 > /proc/sys/vm/block_dump

itu akan menghasilkan pesan di syslog seperti:

Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 4335136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 15505568 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340160 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340168 on dm-4

Saya telah menggunakan perintah ls sederhana

CATATAN:pastikan logging sistem Anda dimatikan atau ditulis ke ramdisk (ketik:tmpfs) sebelum melakukannya, karena (kutipan):"sistem Anda mungkin masuk ke loop umpan balik, di mana syslogd menyebabkan aktivitas disk, ini menyebabkan keluaran kernel, dan ini menyebabkan syslogd melakukan lebih banyak aktivitas disk"

Saya merekomendasikan untuk memasang /tmp sebagai ramdisk lalu menyiapkan logging ke /tmp/syslog. Ini di /etc/fstab (dan reboot) akan melakukan:

none /tmp tmpfs defaults,size=256M 0 0

Saya telah menggunakan iotop untuk mencari tahu apa yang menggunakan drive tersebut. Dari situs web Anda harus memiliki "kernel Linux ≥ 2.6.20 dengan opsi TASK_DELAY_ACCT dan TASK_IO_ACCOUNTING diaktifkan".

Sepertinya Anda hanya tertarik pada satu drive tertentu. Anda dapat mempertimbangkan untuk menulis skrip yang secara rutin memeriksa dengan lsof atau fuser untuk akses ke drive/partisi tersebut.


Linux
  1. Bagaimana saya tahu apakah saya ada di layar?

  2. Bagaimana saya bisa memeriksa apa yang membutuhkan ruang disk di/tmp?

  3. Berapa banyak Load_cycle_count yang dapat dipertahankan oleh hard drive saya secara hipotetis?

  1. Bagaimana cara memantau penggunaan memori yang didedikasikan untuk kernel?

  2. Berapa banyak inti yang dapat ditangani oleh kernel Linux?

  3. Bagaimana saya bisa memesan satu blok memori dari kernel Linux?

  1. Bagaimana saya bisa tahu di Linux proses mana yang mengirim sinyal ke proses saya

  2. Bagaimana saya bisa memeriksa konfigurasi preemption kernel saya?

  3. Bagaimana saya bisa tahu proses apa yang menyebabkan beban tinggi jika bukan penggunaan cpu tinggi?