Kami memiliki CentOS 6.4 dan kipmi0
ditampilkan sebagai 99,8% CPU dan memori 0,0% dan rata-rata beban 1,00. Apa yang harus kita lakukan untuk memperbaiki ini?
lshw
dan dmidecode
akan menjadi area saya berikutnya untuk melihat.
Kami memiliki CentOS 6.4 dan kipmi0
ditampilkan sebagai 99,8% CPU dan memori 0,0% dan rata-rata beban 1,00. Apa yang harus kita lakukan untuk memperbaiki ini?
lshw
dan dmidecode
akan menjadi area saya berikutnya untuk melihat.
Jawaban:
Apakah sistem lain identik dengan sistem ini? Anda harus menentukan bahwa itu benar. Pasti ada sesuatu yang secara fundamental berbeda di antara mereka. Firmware? Versi RPM yang sama?
Anda dapat menggunakan alat-alat seperti lshw
, dmidecode
, dan melihat dmesg
log untuk petunjuk tentang apa yang berbeda dan apa akar penyebab.
Saya akan mendapatkan garis dasar yang baik dari RPM yang diinstal dengan menjalankan perintah ini di salah satu sistem yang tidak menunjukkan masalah ini dan yang ada dan membandingkan daftar paket untuk memastikan mereka semua pada versi yang sama.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
Kemudian dapatkan file pada mesin yang sama dan lakukan sdiff dari 2 file:
sdiff machine1_rpms.txt machine2_rpms.txt
Situs web IBM memiliki teknik ini berjudul: Kipmi0 Mei Menunjukkan Peningkatan Pemanfaatan CPU di Linux , mengenai masalah ini. Menurut masalah ini Anda pada dasarnya dapat mengabaikan masalah.
deskripsi masalah
Proses kipmi0 dapat menunjukkan peningkatan pemanfaatan CPU di Linux. Pemanfaatan dapat meningkat hingga 100% ketika perangkat IPMI (Intelligent Platform Management Interface), seperti BMC (Baseboard Management Controller) atau IMM (Integrated Management Controller) sedang sibuk atau tidak responsif.
Memperbaiki
Tidak diperlukan perbaikan. Anda harus mengabaikan peningkatan pemanfaatan CPU karena tidak berdampak pada kinerja sistem yang sebenarnya.
Bekerja di sekitar
Jika tidak menggunakan perangkat IPMI, hentikan layanan IPMI dengan mengeluarkan perintah berikut:
layanan berhenti ipmi
Saya menemukan posting ini di blog someones dengan judul: masalah kipmi0 . Masalah ini terdengar identik dengan masalah Anda. Masalah ini ditelusuri ke masalah dengan 2 modul kernel yang semakin dimuat sebagai bagian dari lm_sensors
paket.
Ini adalah 2 modul kernel:
Bekerja di sekitar
Anda dapat menghapus ini secara manual dengan perintah berikut:
rmmod ipmi_msghandler
rmmod ipmi_si
Untuk membuat perbaikan ini permanen, Anda harus menonaktifkan pemuatan modul kernel ini di dalam salah satu lm_sensors
file konfigurasi, dengan berkomentar seperti:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Mulai ulang lm_sensors
setelah melakukan perubahan ini:
/etc/init.d/lm_sensors
sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"
akan mencabut semua perbedaan dengan 2 file .txt. Ada cara lain untuk melakukannya tetapi itu satu cara.
Menurut Dokumen IPMI :
utas ini dapat menggunakan banyak CPU tergantung pada kinerja antarmuka. Ini dapat menghabiskan banyak CPU dan menyebabkan berbagai masalah dengan mendeteksi CPU yang menganggur dan menggunakan daya ekstra. Untuk menghindari ini, kipmid_max_busy_us menetapkan jumlah waktu maksimum, dalam mikrodetik, bahwa kipmid akan berputar sebelum tidur untuk tanda centang. Nilai ini menetapkan keseimbangan antara kinerja dan pemborosan CPU dan perlu disesuaikan dengan kebutuhan Anda. Mungkin, suatu hari, penyetelan otomatis akan ditambahkan, tetapi itu bukan hal yang sederhana dan bahkan penyetelan otomatis perlu disesuaikan dengan kinerja yang diinginkan pengguna.
Jadi, kita dapat menjalankan perintah ini untuk mengatur parameter kipmid_max_busy_us:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Dalam sistem kami, setelah mengatur parameter ini, cpu kipmi0 menurun hingga 15%.
Anda bisa mencoba ini.
Untuk membuat perubahan terus-menerus, Anda dapat mengkonfigurasi opsi untuk modul kernel ipmi_si.
Buat file di /etc/modprobe.d/
, yaitu /etc/modprobe.d/ipmi.conf
, dan tambahkan konten berikut:
Sekarang setiap kali modul ipmi_si dimuat ke dalam kernel, parameter harus secara otomatis dan benar diatur.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
kipmi0 dapat dinonaktifkan pada CentOS 6 seluruhnya dengan menambahkan ipmi_si.force_kipmid=0
sebagai parameter kernel
Tes di layar boot GRUB dengan menyorot kernel yang ingin Anda boot, tekan 'a' untuk memodifikasi parameter dan menambahkan ipmi_si.force_kipmid=0
Jadikan permanen dengan menambahkan ipmi_si.force_kipmid=0
ke baris kernel yang relevan di/boot/grub/grub.conf
CATATAN: Dalam distro yang memiliki ipmi_si sebagai modul kernel terpisah, menggunakan file modprobe.d conf lebih tepat. Dalam CentOS ipmi_si dibangun di dalam gambar kernel, jadi konfigurasi modprobe tidak berfungsi.
CentOS 6 memiliki driver ipmi yang dikompilasi dalam kernel. Jika Anda tidak memerlukan dukungan ipmi maka nonaktifkan saja grub.conf
ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0
Saya menemukan bantuan berikut dengan masalah ini:
ipmitool bmc info
Ini sepertinya membangunkan IPMI dan kemudian berhenti menggunakan 100% inti.
Saya juga menemukan yang berikut ini bermanfaat:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Juga di masa lalu saya telah mampu pada beberapa server untuk menyelesaikan penggunaan CPU 100% dengan:
ipmitool lan print
dan
ipmitool bmc reset cold
tetapi dalam pengalaman saya yang terbaru opsi di atas hanya akan menyebabkan ipmitool
tidak responsif dan duduk di sana, menyebabkan saya untuk Ctrl+ Citu.
Semoga ini bisa membantu seseorang.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
?