Bagaimana cara mengidentifikasi penulisan yang berat ke disk?

9

Saya memiliki masalah ini dengan server menjalankan aplikasi CakePHP. Server sangat lambat, saya pertama kali berpikir itu masalah aplikasi, tapi kemudian saya menemukan konstan menulis 5-6MB / s ke disk.

Apa cara termudah untuk menemukan penyebab penulisan yang begitu berat?

Server menjalankan Gentoo.

Jakub Arnold
sumber

Jawaban:

15

Instal iotop , dan temukan program mana yang melakukannya.

wazoox
sumber
17

Sebagai penulis Dstat saya akan menunjukkan opsi tambahan. Anda dapat dengan mudah melihat proses apa yang paling banyak memakan bandwidth I / O:

dstat -ta --top-bio

atau dstat -ta --top-io

Yang pertama adalah blok I / O atas, dan yang kedua adalah blok I / O (termasuk di-cache). Ini dapat membantu Anda memvalidasi jika ini yang Anda harapkan (baik sebagai konsumen maupun konsumsinya).

Ada beberapa plugin lain yang dapat membantu Anda mengidentifikasi tingkat pemanfaatan disk:

dstat -tdf --disk-util

Jadi, jika Anda memiliki I / O bottlenecks, ini akan memberi tahu Anda disk mana yang terlibat sehingga Anda dapat melihat apakah ada sesuatu yang dapat dilakukan tentang hal itu di akhir itu.

Dan jika Anda memecahkan masalah sistem file spesifik (jaringan), Anda dapat menggunakan plugin lain untuk mendapatkan informasi lebih lanjut tentang sistem file tersebut. Dstat juga memiliki plugin untuk metrik lain (cpu, VM, virtualisasi, dll ...) dan tergantung pada apa yang Anda perlu visualisasikan, Anda dapat menulis plugin sendiri, atau memodifikasi plugin yang ada untuk menunjukkan dengan tepat apa yang perlu Anda korelasikan.

Namun jika Anda memerlukan bantuan, ingin berkontribusi atau memiliki ide baru yang bagus, hubungi saya untuk melihat bagaimana kami dapat melanjutkan ...


sumber
3

Anda dapat menggunakan alat dstat mewah

Yuri
sumber
3

Dari halaman manual dstat - 'dstat -M time, cpu, net, disk, sys, load, proc, topcpu'. dstat diinstal dengan sebagian besar distribusi sehingga lebih cepat daripada menginstal iotop.

Saurabh Barjatiya
sumber
3

coba vmstat dan iostat


sumber
1

Anda dapat membuang aktivitas disk (bersama dengan pid yang menghasilkannya) di syslog dengan perintah berikut:

echo 1 > /proc/sys/vm/block_dump

Sebelum mengeluarkan ini, pastikan bahwa log sistem Anda tidak pada perangkat blok, jika tidak Anda akan berakhir dalam loop tak terbatas.

asdmin
sumber