Mencari tahu apa yang berputar harddisk

10

Saya adalah pemilik NAS, menjalankan beberapa distribusi Linux. Itu datang dengan frontend administrasi web, di mana saya dapat mengelola beberapa layanan, hak pengguna dan juga kapan harus pergi tidur. Masalah saya adalah, untuk beberapa alasan, ketika NAS sudah tidur, hard drive menyala lagi setelah beberapa menit. Kemudian akan berputar untuk beberapa waktu, lalu tidur lagi. Ini terus berlangsung tanpa batas.

Bagaimana saya bisa mencoba menentukan penyebabnya? Saya sangat baru di Linux, tetapi saya berhasil mendapatkan akses root, dan sekarang memiliki koneksi SSH.

Andreas
sumber
Ini sudah sangat tua, tetapi mungkin masih memiliki kiat yang relevan.
Gilles 'SO- stop being evil'
Apakah Anda memiliki plugin analytics / like dengan antarmuka web / frontend ke kotak NAS? apa saja detail kotak NAS? Saya bertanya-tanya apakah beberapa alat systemtap dapat digunakan di sana untuk memeriksa aktivitas disk. systemtap hanya tersedia untuk versi Linux kernel yang lebih baru.
Nikhil Mulley
NAS adalah Jaringan d2 Lacie 2. Tidak ada opsi plugin, tapi saya kira saya bisa memuat apa pun ke dalamnya. Ini menjalankan server web Green Unicorn. Kernel adalah 2.6.31.14-svn6790.
Andreas

Jawaban:

6

inotify-tools adalah cara sederhana untuk melakukan ini. Ada beberapa contoh di situs mereka yang dapat melakukan apa yang Anda inginkan (lihat contoh inotifywatch untuk yang benar-benar dasar).

Patrick
sumber
Saya sedang melihat ke dalam ini. Pertama, saya perlu mengkompilasi sumber untuk cpu ARMv5TE. Itu mungkin terbukti cukup sulit :)
Andreas
6

Coba jalankan iotopmungkin? Saya menemukan itu berguna di masa lalu.

Faheem Mitha
sumber
2

Kiat lain: Gunakan Systemtap, ada banyak skrip probe di situs systemtap yang cukup berguna untuk menemukan pelakunya.

Dalam kasus lain sama sekali,

Jika Anda ingin mengetahui proses mana yang menyebabkan disk berputar, Anda dapat mengumpulkan informasi dengan mengatur bendera /proc/sys/vm/block_dump. Ketika flag ini disetel, Linux melaporkan semua operasi baca dan tulis disk yang terjadi, dan semua blokir dilakukan ke file. Ini memungkinkan untuk men-debug mengapa disk perlu diputar, dan untuk menambah masa pakai baterai lebih. Output dari block_dump ditulis ke output kernel, dan dapat diambil menggunakan "dmesg" atau lihat fasilitas syslog kern Anda untuk tujuan pesan debug. Secara umum, seharusnya /var/log/debug. Ketika Anda menggunakan block_dump dan level logging kernel Anda juga menyertakan pesan debugging kernel, Anda mungkin ingin mematikan klogd, jika tidak, output dari block_dump akan dicatat, menyebabkan aktivitas disk yang biasanya tidak ada di sana.

Nikhil Mulley
sumber
2

Anda perlu memberi tahu kernel untuk memberi tahu Anda tentang semua baca / tulis ke disk, maka Anda perlu melihat informasi itu.

Begitu:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

syncflush semua tulisan yang tertunda ke disk, sehingga Anda hanya akan melihat tulisan baru atau tulisan.
dmesg -cmenampilkan pesan-pesan kernel kepada Anda, dan menghapusnya (jika tidak, Anda juga akan melihat yang lama, setiap kali Anda menjalankan dmesg). grepmemfilter keluaran dmesg untuk aktivitas untuk disk yang Anda minati. Ganti / dev / sda dengan perangkat Anda yang sebenarnya.

Saya biasanya menggunakan sesuatu seperti ini untuk menurunkan disk, lalu memeriksa kapan itu berputar lagi:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

The whileLoop cek disk aktif Status / menganggur setiap 10 menit. Ketika Anda melihatnya menyala, jalankan dmesgbaris di atas untuk melihat whodunnit.

Greg Bell
sumber