Saya telah mengalami lonjakan beban selama seminggu terakhir. Ini biasanya terjadi sekali atau dua kali sehari. Saya sudah berhasil mengidentifikasi dari iotop bahwa [jbd2 / md1-8] menggunakan 99,99% IO. Selama waktu pemuatan tinggi, tidak ada lalu lintas tinggi ke server.
Spesifikasi server adalah:
- AMD Opteron 8 core
- RAM 16 GB
- 2x2.000 GB 7.200 RPM HDD Raid Software 1
- Cloudlinux + Cpanel
- Mysql disetel dengan benar
Terlepas dari paku, beban biasanya sekitar 0,80 paling banyak.
Saya telah mencari-cari tetapi tidak dapat menemukan apa [jbd2 / md1-8] yang sebenarnya. Adakah yang punya masalah ini atau ada yang tahu solusi yang mungkin?
Terima kasih.
MEMPERBARUI:
TIME TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
16:05:36 399 be/3 root 0.00 B/s 38.76 K/s 0.00 % 99.99 % [jbd2/md1-8]
iostat
? Bisakah Anda menjalankan sedikit (katakanlahiostat 5
) sebentar dan membagikan hasilnya?Jawaban:
Ini sebenarnya bukan jawaban karena tidak ada konteks yang cukup untuk memberikan penyebab yang tepat, tetapi ini adalah deskripsi bagaimana saya berhasil melacak ini ketika itu terjadi pada saya.
Saya perhatikan saya
jbd2/md0-8
terus muncul di atasiotop
. Saya melihat/sys/kernel/debug/tracing/events/jbd2
ke dalam untuk melihat opsi apa yang ada untuk menentukan apa yangjbd2
sedang dilakukan.CATATAN-1: Untuk melihat output untuk acara pelacakan penelusuran
cat /sys/kernel/debug/tracing/trace_pipe
- Saya menjalankan terminal ini saat mengaktifkan / menonaktifkan jejak.CATATAN-2: Untuk mengaktifkan acara untuk melacak penggunaan misalnya
echo 1 > /sys/kernel/debug/tracing/events/jbd2/jbd2_run_stats/enable
. Untuk menonaktifkanecho 0 > /sys/kernel/debug/tracing/events/jbd2/jbd2_run_stats/enable
.Saya mulai dengan mengaktifkan
/sys/kernel/debug/tracing/events/jbd2/jbd2_run_stats/enable
- tetapi tidak ada yang tampak sangat menarik dalam output untuk itu. Saya mencoba beberapa peristiwa lain untuk melacak dan ketika saya mengaktifkan/sys/kernel/debug/tracing/events/jbd2/jbd2_commit_flushing/enable
saya melihat itu terjadi setiap detik:Ini sepertinya terkait dengan
sync(2)
/fsync(2)
/msync(2)
, jadi saya mencari beberapa cara untuk menautkan ini ke proses dan menemukan ini:Ketika saya mengaktifkannya saya melihat output berikut:
Ini memberi saya nama proses / id - dan setelah melakukan lebih banyak debugging dari proses ini (
nzbget
) saya menemukan itu melakukanfsync(2)
setiap detik. Setelah saya mengubah konfigurasi (FlushQueue=no
, menurut saya tidak berdokumen, menemukannya dalam sumber) untuk menghentikannya melakukan hal ini per detikfsync(2)
masalahnya hilang.Versi kernel saya adalah.
4.4.6-gentoo
Saya pikir ada beberapa opsi yang saya aktifkan (baik secara manual atau denganmake oldconfig
) di beberapa titik di konfigurasi kernel untuk mendapatkan/sys/kernel/debug
dengan peristiwa ini - jadi jika Anda tidak memilikinya mungkin hanya melihat-lihat internet untuk informasi lebih lanjut tentang mengaktifkan Itu.sumber
Ini tampaknya menjadi hal yang terkait pembaruan jurnal. Jumlah disk perangkat lunak yang dibuat. Bisakah Anda menunjukkan kepada saya perintah yang digunakan untuk membuatnya.
Bisakah Anda juga menempelkan pada keluaran dumpe2fs. Pertama, kenali perangkat fisik tempat Anda melihat memuat. Gunakan df untuk mengetahui hal ini. Kemudian,
Untuk kasus Anda, mungkin / dev / md0.
Juga, jalankan ini.
Pada saat masalah IO tinggi.
Saya tidak tahu cloudlinux tetapi apakah alat blktrace tersedia di bawahnya.
sumber