Kipmi0 Centos 6.4'te% 99.8'e kadar İşlem Görüyor


15

CentOS 6.4'ümüz var ve kipmi0% 99.8 cpu,% 0.0 bellek ve yük ortalaması 1.00. Bunu düzeltmek için ne yapmalıyız?



2
@ Daha önce okudum, bu yüzden görmezden gelmeliyim ama diğer makinelerimde bu sorun yok mu?
biz14

Diğer sistemler bu sistemle aynı mı? Bunları belirlemeniz gerekecek. Aralarında temelde farklı bir şey olmalı. Firmware? Aynı RPM sürümleri?
slm

@ Aynı centos 6.4 ile iki aynı makine var Şimdi ne aramalıyım?
biz14

Dan çıkışları karşılaştırın lshwve dmidecodeiçine bakmak benim sonraki alanlar olacaktır.
slm

Yanıtlar:


5

Sorun ayıklama

Diğer sistemler bu sistemle aynı mı? Bunları belirlemeniz gerekecek. Aralarında temelde farklı bir şey olmalı. Firmware? Aynı RPM sürümleri?

Aşağıdaki gibi araçları kullanabilirsiniz lshw, dmidecodeve şu an dmesgneyi farklı neyin kök neden olduğunu için ipuçları için log.

Bu komutu bu sorunu sergilemeyen sistemlerden birinde ve bu komutların hepsinin aynı sürümlerde olduğundan emin olmak için paket komutlarını çalıştırarak yüklenen RPM'lerin iyi bir temelini alırdım.

 # machine #1
 $ rpm -aq | sort -rn > machine1_rpms.txt

 # machine #2
 $ rpm -aq | sort -rn > machine2_rpms.txt     

Sonra dosyaları aynı makineye alın ve 2 dosyadan bir sdiff yapın:

 sdiff machine1_rpms.txt machine2_rpms.txt

Olası neden # 1

IBM web sitesinde şu konu başlıklı bir teknik vardı: Kipmi0 , bu konuda Linux'ta Artan CPU Kullanımı Gösterebilir . Bu sayıya göre, sorunu göz ardı edebilirsiniz.

sorunun tarifi

Kipmi0 işlemi Linux'ta artan CPU kullanımını gösterebilir. BMC (Ana Kart Yönetim Denetleyicisi) veya IMM (Entegre Yönetim Denetleyicisi) gibi IPMI (Akıllı Platform Yönetim Arayüzü) cihazı meşgul veya yanıt vermiyorsa kullanım% 100'e kadar çıkabilir.

Fix

Düzeltme gerekmez. Gerçek sistem performansı üzerinde hiçbir etkisi olmadığı için artan CPU kullanımını göz ardı etmelisiniz.

İşle etrafında

  1. IPMI aygıtı kullanıyorsanız, BMC'yi sıfırlayın veya sistemi yeniden başlatın.
  2. IPMI aygıtı kullanmıyorsanız, aşağıdaki komutu vererek IPMI hizmetini durdurun:

    hizmet ipmi durdurma

Potansiyel çözüm # 2

Bu yazıyı basitçe başlıklı birileri blogunda buldum: kipmi0 problem . Bu sorun seninkine benziyordu. Sorun, lm_sensorspaketin bir parçası olarak yüklenen 2 çekirdek modülüyle ilgili bir sorunla ilgili olarak izlendi .

Bunlar 2 çekirdek modülüdür:

  • ipmi_si
  • ipmi_msghandler

İşle etrafında

Bunları aşağıdaki komutlarla manuel olarak kaldırabilirsiniz:

rmmod ipmi_msghandler
rmmod ipmi_si

Bu düzeltmeyi kalıcı hale getirmek için, bu belirli çekirdek modüllerinin lm_sensorsyapılandırma dosyalarından birine yüklenmesini şu şekilde yorumlayarak devre dışı bırakmanız gerekir :

# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp

lm_sensorsBu değişiklikleri yaptıktan sonra yeniden başlatın :

/etc/init.d/lm_sensors

Ben hem web sitesine olmuştur ve benim sistemde / etc / sysconfig / lm_sensors bu dosyayı bulamıyorum. İlk dosyada sıralama yaptığımda komik bir şey Asc ama ikinci dosya desc? İkincisi, farkın bir dosyaya nasıl çıkartılacağı. Evet ben de oldukça fazla fark görüyorum.
biz14

evet şimdi buna göre azalan sıralanır ikinci kez yaptım. Sana nasıl grep "|" kullanmak için anlamıyorum. Bu sorunu gidermek için başka ne yapmalıyım?
biz14

Söylediğim tek şey bunu yapmaktı: sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"2 .txt dosyalarındaki tüm farklılıkları ortaya çıkaracak. Bunu yapmanın başka yolları da var ama bu bir yol.
slm

Bu komutu çalıştırdım ve işte çıktı sdiff 12_rpms.txt 11_rpms.txt | grep "|" perl-DBI-1.609-4.el6.x86_64 | perl-Özet-SHA-5.47-131.el6_4.x86_64. 12_rpms problem makinesidir ve diğeri problemsizdir. Ama elle baktığımda 12_rpms 247 satır ve 11_rpms 263 var ama sdiff sadece biri mi? Peki şimdi bu farka dayalı bir sonraki adımım ne olmalı?
biz14

Lütfen bu dosyaları da pastebin.com adresine gönderin .
slm

24

Göre IPMI Belgesi :

bu iş parçacığı, arabirimin performansına bağlı olarak çok fazla CPU kullanabilir. Bu, çok fazla CPU harcayabilir ve boş CPU'ları algılayıp ekstra güç kullanarak çeşitli sorunlara neden olabilir. Bundan kaçınmak için kipmid_max_busy_us, kipmidin bir kene için uyumadan önce döneceği maksimum süreyi mikrosaniye olarak ayarlar. Bu değer, performans ve CPU atıkları arasında bir denge kurar ve ihtiyaçlarınıza göre ayarlanması gerekir. Belki bir gün otomatik ayar eklenir, ancak bu basit bir şey değildir ve otomatik ayarın bile kullanıcının istediği performansına ayarlanması gerekir.

Bu nedenle, kipmid_max_busy_us parametresini ayarlamak için bu komutu yürütebiliriz:

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

Sistemimizde, bu parametreyi ayarladıktan sonra, kipmi0 işlemcisi% 15'e düştü.

Bunu deneyebilirsiniz.

Değişiklikleri kalıcı hale getirmek için ipmi_si çekirdek modülü seçeneklerini yapılandırabilirsiniz.
Bir dosya oluşturun /etc/modprobe.d/, yani /etc/modprobe.d/ipmi.confaşağıdaki içeriği ekleyin: Şimdi ipmi_si çekirdek modülü çekirdeğe her yüklendiğinde, parametre otomatik ve doğru bir şekilde ayarlanmalıdır.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


Her ne kadar bu doğru cevap olsa da, SE sitelerinde, cevabınızın bir parçası olarak akıl yürütmeyi ayrıntılandırmanın ve herhangi bir dış bağlantıyı alıntılamanın en iyi uygulama olduğu düşünülmektedir. Bu şekilde, dış bağlantı kesilirse, mantık ve akıl yürütme burada hala görülebilir.
Drav Sloan

Kalıcı olarak yürürlüğe girmesinin standart bir yolu var mı?
tgharold

CentOS / RHEL üzerinde, bu komut /etc/rc.d/rc.local dosyasına eklenerek kalıcı hale getirilebilir. Rc.local, diğer tüm başlangıç ​​komut dosyalarından sonra çalışır.
tgharold

1

kipmi0, CentOS 6'da ipmi_si.force_kipmid=0bir çekirdek parametresi olarak eklenerek tamamen devre dışı bırakılabilir

Önyükleme yapmak istediğiniz çekirdeği vurgulayarak GRUB önyükleme ekranında test edin, parametreleri değiştirmek ve eklemek için 'a' tuşuna basın. ipmi_si.force_kipmid=0

İçindeki ipmi_si.force_kipmid=0ilgili çekirdek satırlarına ekleyerek kalıcı hale getirin/boot/grub/grub.conf

Not: ayrı bir çekirdek modülü olarak ipmi_si olan dağıtımlarda, bir modprobe.d conf dosyası kullanmak daha uygundur. CentOS ipmi_si çekirdek görüntüsünde yerleşiktir, bu nedenle modprobe yapılandırmaları çalışmaz.


1

CentOS 6, çekirdekte derlenmiş ipmi sürücüsüne sahiptir. Ipmi desteğine ihtiyacınız yoksa, sadece grub.conf'u devre dışı bırakın

ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0

1

Bu sorunla ilgili aşağıdaki yardımcıları buldum:

ipmitool bmc info

Bu IPMI'yi uyandırıyor ve daha sonra bir çekirdeğin% 100'ünü kullanmayı bırakıyor.

Ayrıca aşağıdakileri yararlı buldum:

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

Ayrıca geçmişte bazı sunucularda% 100 CPU kullanımını şu şekilde çözebildim:

ipmitool lan print

ve

ipmitool bmc reset cold

ancak en son deneyimlerime göre, yukarıdaki seçenekler ipmitoolyanıt vermemeye ve orada oturmamıza neden olarak bana Ctrl+ neden oluyordu C.

Umarım bu birine yardımcı olur.


Yapacak bir problem var mı echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us?
Qian Chen

0

Bu CentOS 7 çalıştıran ve ne aldı anlamaya çalışırken buldum.

Benim için Supermicro'nun yazdığım bir senaryodan ya da başka bir şeyden "ipmicfg" idi. Ben sadece pkilled ve kipmi0 kullanımı gitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.