Apa yang menyebabkan semua aktivitas disk pada OS X?

59

Kadang-kadang Macbook Pro saya akan melambat saat hard drive mengklik tanpa henti. Beban CPU rendah, tetapi aplikasi dan menu lambat merespons. Apakah ada utilitas yang dapat membantu saya menentukan apa yang terjadi, seperti jumlah byte yang dibaca / ditulis atau file buka / tutup per proses, dari waktu ke waktu?

kutu buku yang dibayar
sumber
1
Berspekulasi di sini, tetapi mungkin sesuatu yang sederhana seperti mdsmemperbarui indeks Spotlight.
4
9 kali dari 10 sorotan adalah masalahnya. Satu hal yang saya perhatikan adalah bahwa jika Anda memiliki partisi bootcamp, pastikan untuk memasukkannya ke dalam daftar hitam sorotan atau mds akan selalu mengunyahnya.
Bryan Schuetz
5
Terima kasih atas sarannya tentang Spotlight. Saya baru saja mengalami pembacaan disk yang sangat tinggi, melemparkan partisi Boot Camp saya ke tab Privacy di Spotlight, dan segera disk membaca dengan rata! Telah membuatku gila selama berbulan-bulan.
Tim Keating

Jawaban:

61

Dari man iotop:

iotop melacak I / O disk dengan proses, dan mencetak laporan ringkasan yang di-refresh setiap interval.

Ini mengukur peristiwa disk yang berhasil melewati cache sistem.

Karena ini menggunakan DTrace, hanya pengguna root atau pengguna dengan hak istimewa dtrace_kernel yang dapat menjalankan perintah ini.

Ini mungkin bukan yang Anda inginkan - tetapi ini adalah skrip ksh yang membungkus dtrace, jadi Anda harus dapat mengetahui cara membuat dtrace melakukan apa yang Anda butuhkan, jika iotop tidak menanganinya secara default.

Namun, sesuatu seperti iotop -C 5 12harus memberi Anda sesuatu untuk memulai dengan: itu akan menghasilkan 12 sampel, masing-masing 5 detik.

James Polley
sumber
2
Cukup bagus. iotop -C 5 12adalah cara yang baik untuk mendapatkan ringkasan tentang apa yang terjadi.
nerd yang dibayar
51

Anda juga dapat menggunakan fs_usageuntuk mendapatkan akun blow-by-blow tentang apa aplikasi yang memukul disk.

AlBlue
sumber
1
Oooh, ini panas. fs_usagejuga memungkinkan Anda memfilter aktivitas jaringan dan sistem file.
nerd yang dibayar
2

Saya selalu memperhatikan ini pada hari Sabtu pagi, dan ternyata locate, yang memperbarui databasenya pada jam 3:15 pada hari Jumat malam.

Saya mencoba menonaktifkan launchdkonfigurasinya (dalam /System/Library/LaunchDaemons/com.apple.locate.plist), tetapi masih tetap berjalan, jadi saya baru saja pindah /usr/libexec/locate.updatedb. Masalah ... dimitigasi.

Brandan
sumber
1

Mungkin paging OS ke memori virtual, bukan sesuatu yang spesifik aplikasi. Anda dapat mencoba keluar dari aplikasi yang jarang digunakan atau setidaknya me-restart beberapa aplikasi yang suka membangun cache dalam-memori dari waktu ke waktu (misalnya Safari). Periksa berbagai statistik memori per-proses dengan Monitor Aktivitas untuk menemukan kemungkinan penyebabnya. Jika berhenti dari beberapa aplikasi intensif memori tampaknya untuk sementara meringankan masalah, Anda dapat mencoba menambahkan RAM.

Jika aktivitas disk tidak terkait paging, Anda mungkin dapat menggunakannya fs_usageuntuk melacaknya kembali ke satu atau beberapa proses spesifik.

Chris Johnsen
sumber