Apa yang membuat menunggu I / O CPU tetapi tidak ada operasi disk?


12

Saya memiliki CPU I / O menunggu stabil sekitar 50%, tetapi ketika saya menjalankannya iostat 1menunjukkan sedikit atau tidak ada aktivitas disk.

Apa yang menyebabkan menunggu tanpa iops?

CATATAN: Tidak ada sistem file NFS atau FUSE di sini, tetapi menggunakan virtualisasi Xen.

masukkan deskripsi gambar di sini


Distro apa? Versi apa?
ZaMoose

2
Juga: apakah ini mesin Xen hyper visor atau VM dengan iowaits?
ZaMoose

Apakah iotopmenunjukkan sesuatu kepada Anda?
Janne Pikkarainen

Jawaban:


7

NFS dapat melakukan ini, dan itu tidak akan mengejutkan saya jika sistem file jaringan lain (dan bahkan perangkat berbasis FUSE) memiliki efek yang sama.


Terima kasih, tetapi dalam hal ini tidak ada NFS dan FUSE. Saya akan menambahkan itu ke pertanyaan juga.
Jason Cohen

6

Apakah ada kemungkinan VM lain di server meronta-ronta disk?

Saya tahu dengan virtualisasi bahwa Anda bisa mendapatkan beberapa hasil aneh jika node host kelebihan beban.


Benar tapi itu harus di curi% bukan io% kan? Atau bisakah itu menyeberang ke sana juga?
Jason Cohen

3
Mencuri terjadi ketika kapasitas CPU lebih sedikit daripada yang diminta oleh VM. Jika disk fisik kelebihan beban, proses Anda akan menghabiskan banyak waktu di iowait menunggu giliran mereka di disk bahkan jika mereka tidak terlalu banyak memukul disk.
lbft

Ya ini. Lihat pertanyaan lain dengan jawaban yang sama di serverfault.com/a/209031/57468
mattdm

3

Jika ini adalah lingkungan Amazon EC2 Xen menggunakan penyimpanan berbasis instance, minta Amazon untuk memeriksa kesehatan host yang berisi gambar ini.

Jika ini adalah lingkungan Xen yang dapat Anda akses ke hypervisor, maka periksa IOwait dari tanpa untuk gambar disk (file, jaringan, slice LVM, apa pun) yang digunakan untuk perangkat xvda dan xvdb. Anda juga ingin memeriksa sistem I / O, secara umum, untuk hypervisor karena perangkat disk lain mungkin memonopoli sumber daya sistem.

iostat -txk 5

biasanya merupakan alat diagnostik awal yang baik. Dibutuhkan ringkasan 5-detik I / O untuk SEMUA perangkat yang tersedia untuk itu, dan dengan demikian berguna baik dengan-dan melemahkan gambar VM.


2

Periksa deskriptor / inode file yang tersedia. Ketika Anda mencapai batas, mereka menukar dan meniru iowait

Edit

Saya melihat Anda menggunakan xen, lihat interupsi Anda saat ini, Anda mungkin menemukan blkif lebih tinggi dari biasanya.

Agak terlambat sekarang, tetapi instal munin dan itu akan sangat membantu debugging masa depan.


1
sudo sysctl vm.block_dump=1

Kemudian periksa dmesg untuk melihat apa yang sedang melakukan blok baca / tulis atau mengotori inode.

Periksa juga batas nofile di limit.conf, suatu proses dapat meminta lebih banyak file daripada yang diizinkan untuk dibuka.


1

PERINGATAN: HDPARM BERBAHAYA, SELALU BACA TENTANG PERINTAH YANG ANDA AKAN GUNAKAN!

Jika tidak ada mesin virtual lain yang menekankan hard disk, lakukan

hdparm -f

pada disk fisik yang mendasarinya. Kemungkinan cache disk tidak berfungsi secara akurat. Ini akan mem-flush data yang disimpan dalam cache, dan Anda dapat secara konstan memonitor I / O, apakah akan naik kembali setelah flush. Jika ya, itu akan menjadi masalah cache.


0

Dengan rata-rata beban, saya melihat peningkatan operasi jaringan (mis. Panggilan lama ke server DB eksternal) meningkat. Saya tidak tahu pasti tapi saya kira jaringan IO dapat menyebabkan CPU menunggu untuk naik? Adakah yang bisa mengkonfirmasi?


1
Pada kebanyakan mesin modern, tidak. Kebanyakan, jika tidak semua sistem terbaru memiliki NIC yang mampu DMA untuk mencegah situasi semacam ini.
ZaMoose

0

Bisa jadi perangkat loopback, yang dengan sendirinya dipasang melalui jaringan.


0

Di komputer saya NFS adalah "produser" IO-WAIT terbesar. Saya memiliki SSD di laptop saya yang sangat cepat, jadi "IO nyata" bukan masalahnya. Namun demikian saya kadang-kadang memiliki banyak IO menunggu karena saham nfs yang saya pasang.

SCP kadang-kadang juga tampaknya mengarah ke IO Tunggu tetapi untuk perpanjangan yang jauh lebih rendah.


0

Ini bisa apa saja. Ini berarti ada sesuatu yang menunggu akhir dari operasi I / O. Anda dapat mengetahui proses apa itu via ps, lalu pasang gdb padanya dan periksa backtrace untuk menentukan panggilan mana yang hang (biasanya ini adalah beberapa hal yang berhubungan dengan jaringan atau disk yang tiba-tiba terputus). Untuk info fd, lihat / proc.


0

Saya juga mengalami masalah serupa tepat sebelum disk di RAID gagal dan beberapa kabel SATA dengan tikungan ketat di dalamnya mulai gagal.

Penggunaan CPU mendekati 0%, tetapi 1 atau lebih CPU pada sistem 4-core menghabiskan 100% waktu mereka di IOunggu untuk jangka waktu yang lama (ditemukan melalui toplayar cpu multi-line) dengan IOps dan bandwidth yang sangat rendah (ditemukan via iostat), tetapi aktivitas interupsi tinggi bursty. Penggunaan baris perintah interaktif terasa menyakitkan selama akses disk apa pun (mis. Penyelamatan otomatis dari emacssesi seseorang ) tetapi sebaliknya dapat ditoleransi begitu periode IOwait berlalu (dan mungkin operasi berhasil setelah banyak percobaan ulang).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.