Kipmi0 กินซีพียูได้มากถึง 99.8% บน Centos 6.4


15

เรามี CentOS 6.4 และkipmi0แสดงเป็น cpu 99.8% และหน่วยความจำ 0.0% และค่าเฉลี่ยการโหลดคือ 1.00 เราควรทำอย่างไรเพื่อแก้ไขสิ่งนี้


คุณควรเริ่มต้นด้วยการอ่านwww-01.ibm.com/support/…
squareborg

2
@ ฉันได้อ่านมาก่อนดังนั้นเพียงแค่บอกว่าเพิกเฉยฉันควรเพิกเฉย แต่เครื่องอื่น ๆ ของฉันไม่มีปัญหานี้หรือไม่
biz14

ระบบอื่นเหมือนกันกับระบบนี้หรือไม่? คุณจะต้องตรวจสอบว่าพวกเขาเป็น จะต้องมีสิ่งที่แตกต่างกันโดยพื้นฐานระหว่างพวกเขา เฟิร์มแว? รุ่น RPM เดียวกันหรือไม่
slm

@ ใช่มีสองเครื่องเหมือนกันที่มี centos เดียวกัน 6.4 ฉันควรมองหาอะไรตอนนี้?
biz14

เปรียบเทียบเอาท์พุทจากlshwและdmidecodeจะเป็นพื้นที่ต่อไปของฉันเพื่อดู
slm

คำตอบ:


5

แก้ไขจุดบกพร่องปัญหา

ระบบอื่นเหมือนกันกับระบบนี้หรือไม่? คุณจะต้องตรวจสอบว่าพวกเขาเป็น จะต้องมีสิ่งที่แตกต่างกันโดยพื้นฐานระหว่างพวกเขา เฟิร์มแว? รุ่น RPM เดียวกันหรือไม่

คุณสามารถใช้เครื่องมือเช่นlshw, dmidecodeและกำลังมองหาที่dmesgบันทึกเพื่อหาเบาะแสเป็นสิ่งที่แตกต่างกันและสิ่งที่เป็นสาเหตุ

ฉันจะได้รับพื้นฐานที่ดีของ RPMs ที่ติดตั้งโดยใช้คำสั่งนี้กับหนึ่งในระบบที่ไม่แสดงปัญหานี้และสิ่งที่เป็นและเปรียบเทียบรายการแพ็กเกจเพื่อให้แน่ใจว่าพวกเขาอยู่ในรุ่นเดียวกัน

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

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

จากนั้นรับไฟล์บนเครื่องเดียวกันและทำ sdiff ของ 2 ไฟล์:

 sdiff machine1_rpms.txt machine2_rpms.txt

สาเหตุที่เป็นไปได้ # 1

เว็บไซต์ IBM มี technote นี้ชื่อ: Kipmi0 อาจแสดงการใช้งาน CPU ที่เพิ่มขึ้นบน Linuxเกี่ยวกับปัญหานี้ ตามประเด็นนี้คุณสามารถเพิกเฉยต่อปัญหานี้ได้

คำอธิบายของปัญหา

กระบวนการ kipmi0 อาจแสดงการใช้งาน CPU เพิ่มขึ้นใน Linux การใช้งานอาจเพิ่มขึ้นสูงถึง 100% เมื่ออุปกรณ์ IPMI (Intelligent Platform Management Interface) เช่น BMC (Baseboard Management Controller) หรือ IMM (Integrated Management Controller) ไม่ว่างหรือไม่ตอบสนอง

แก้ไข

ไม่จำเป็นต้องแก้ไข คุณควรละเว้นการใช้งาน CPU ที่เพิ่มขึ้นเนื่องจากไม่มีผลกระทบต่อประสิทธิภาพของระบบจริง

ทำงานรอบ

  1. หากใช้อุปกรณ์ IPMI ให้รีเซ็ต BMC หรือรีบูตระบบ
  2. หากไม่ได้ใช้อุปกรณ์ IPMI ให้หยุดบริการ IPMI โดยออกคำสั่งต่อไปนี้:

    บริการ ipmi หยุด

โซลูชันที่มีศักยภาพ # 2

ผมพบว่าการโพสต์เกี่ยวกับเรื่องนี้ someones บล็อกชื่อเพียง: ปัญหา kipmi0 ปัญหานี้ฟังดูเหมือนกับคุณ ปัญหาถูกโยงไปถึงปัญหากับ 2 โมดูลเคอร์เนลที่ได้รับการโหลดเป็นส่วนหนึ่งของlm_sensorsแพคเกจ

นี่คือ 2 เคอร์เนลโมดูล:

  • ipmi_si
  • ipmi_msghandler

ทำงานรอบ

คุณสามารถลบเหล่านี้ด้วยตนเองด้วยคำสั่งต่อไปนี้:

rmmod ipmi_msghandler
rmmod ipmi_si

ในการทำให้การแก้ไขนี้เป็นแบบถาวรคุณจะต้องปิดใช้งานการโหลดโมดูลเคอร์เนลเหล่านี้ภายในlm_sensorsไฟล์การกำหนดค่าอย่างใดอย่างหนึ่งโดยการแสดงความคิดเห็นออกดังนี้:

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

รีสตาร์ทlm_sensorsหลังจากทำการเปลี่ยนแปลงเหล่านี้:

/etc/init.d/lm_sensors

ฉันเคยไปทั้งเว็บไซต์และในระบบของฉันฉันไม่พบไฟล์นี้ / etc / sysconfig / lm_sensors สิ่งที่ตลกเมื่อฉันเรียงลำดับในไฟล์แรกคือ Asc แต่ไฟล์ที่สองเรียงลงมา? ประการที่สองวิธีการส่งออกความแตกต่างในไฟล์ ใช่ฉันเห็นความแตกต่างค่อนข้างมากเช่นกัน
biz14

ใช่ตอนนี้ฉันทำครั้งที่สองมันเรียงตามมากไปน้อย ฉันไม่เข้าใจวิธีใช้ grep "|" ฉันควรทำอะไรอีกเพื่อแก้ไขปัญหานี้
biz14

ทั้งหมดที่ฉันพูดคือการทำเช่นนี้: sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"จะดึงความแตกต่างทั้งหมด b / w ที่ไฟล์ 2 .txt มีวิธีอื่นที่จะทำ แต่นั่นเป็นวิธีหนึ่ง
slm

ฉันรันคำสั่งนี้และนี่คือผลลัพธ์ sdiff 12_rpms.txt 11_rpms.txt | grep "|" perl-DBI-1.609-4.el6.x86_64 | perl-Digest-SHA-5.47-131.el6_4.x86_64 12_rpms เป็นเครื่องที่มีปัญหาและอีกอันหนึ่งไม่มีปัญหา แต่เมื่อฉันดู 12_rpms ด้วยตนเองมี 247 บรรทัดและ 11_rpms มี 263 แต่ sdiff เป็นเพียงหนึ่ง? ดังนั้นขั้นตอนต่อไปของฉันตอนนี้ควรขึ้นอยู่กับความแตกต่างนี้คืออะไร
biz14

กรุณาโพสต์ไฟล์เหล่านี้เช่นกันเมื่อpastebin.com
slm

24

ตามเอกสาร IPMI :

เธรดนี้สามารถใช้ CPU จำนวนมากขึ้นอยู่กับประสิทธิภาพของอินเทอร์เฟซ สิ่งนี้อาจทำให้เสีย CPU มากและทำให้เกิดปัญหาต่างๆกับการตรวจจับ CPU ที่ไม่ได้ใช้งานและการใช้พลังงานเพิ่มเติม เพื่อหลีกเลี่ยงปัญหานี้ kipmid_max_busy_us จะตั้งค่าจำนวนเวลาสูงสุดในหน่วยไมโครวินาทีซึ่ง kipmid จะหมุนก่อนที่จะเห็บ ค่านี้ตั้งค่าสมดุลระหว่างประสิทธิภาพและความสิ้นเปลืองของ CPU และจำเป็นต้องปรับตามความต้องการของคุณ บางทีสักวันการปรับแต่งอัตโนมัติจะถูกเพิ่ม แต่นั่นไม่ใช่เรื่องง่ายและแม้แต่การปรับอัตโนมัติก็จำเป็นต้องปรับให้เข้ากับประสิทธิภาพที่ผู้ใช้ต้องการ

ดังนั้นเราสามารถดำเนินการคำสั่งนี้เพื่อตั้งค่าพารามิเตอร์ kipmid_max_busy_us:

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

ในระบบของเราหลังจากตั้งค่าพารามิเตอร์นี้ cpu ของ kipmi0 ลดลงเป็น 15%

คุณสามารถลองสิ่งนี้

เพื่อทำการเปลี่ยนแปลงแบบถาวรคุณสามารถกำหนดค่าตัวเลือกสำหรับโมดูลเคอร์เนล ipmi_si
สร้างไฟล์ใน/etc/modprobe.d/คือ/etc/modprobe.d/ipmi.confและเพิ่มเนื้อหาต่อไปนี้: ตอนนี้ทุกเวลา ipmi_si เคอร์เนลโมดูลจะโหลดลงในเคอร์เนลพารามิเตอร์ที่ควรจะเป็นโดยอัตโนมัติอย่างถูกต้องและการตั้งค่า
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


แม้ว่านี่อาจเป็นคำตอบที่ถูกต้อง แต่ก็ถือว่าเป็นแนวปฏิบัติที่ดีที่สุดในไซต์ SE เพื่อให้รายละเอียดเหตุผลโดยเป็นส่วนหนึ่งของคำตอบของคุณรวมถึงการอ้างอิงลิงก์ภายนอกใด ๆ ด้วยวิธีนี้หากลิงก์ภายนอกหมดอายุการใช้งานตรรกะและการใช้เหตุผลยังคงสามารถดูได้ที่นี่
Drav Sloan

มีวิธีการมาตรฐานที่จะมีผลอย่างถาวรหรือไม่?
tgharold

บน CentOS / RHEL คำสั่งนั้นสามารถทำได้อย่างถาวรโดยการเพิ่มลงใน /etc/rc.d/rc.local rc.local จะทำงานหลังจากสคริปต์ init อื่น ๆ ทั้งหมด
tgharold

1

kipmi0 สามารถปิดการใช้งานบน CentOS 6 ทั้งหมดโดยการเพิ่มipmi_si.force_kipmid=0เป็นพารามิเตอร์เคอร์เนล

ทดสอบที่หน้าจอบูต GRUB โดยเน้นเคอร์เนลที่คุณต้องการบู๊ตกด 'a' เพื่อแก้ไขพารามิเตอร์และต่อท้าย ipmi_si.force_kipmid=0

ทำให้ถาวรโดยต่อท้ายipmi_si.force_kipmid=0เคอร์เนลที่เกี่ยวข้องใน/boot/grub/grub.conf

หมายเหตุ: ใน distros ที่มี ipmi_si เป็นโมดูลเคอร์เนลที่แยกต่างหากการใช้ไฟล์ modprobe.d conf นั้นเหมาะสมกว่า ใน CentOS ipmi_si ถูกสร้างไว้ในอิมเมจเคอร์เนลดังนั้น modprobe configs จึงไม่ทำงาน


1

CentOS 6 มีไดรเวอร์ ipmi ที่คอมไพล์ในเคอร์เนล หากคุณไม่ต้องการการสนับสนุน ipmi ให้ปิดการใช้งาน grub.conf

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

1

ฉันพบความช่วยเหลือต่อไปนี้เกี่ยวกับปัญหานี้:

ipmitool bmc info

ดูเหมือนว่าจะปลุก IPMI แล้วหยุดใช้ 100% ของคอร์

ฉันพบว่ามีประโยชน์ดังต่อไปนี้:

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

ในอดีตที่ผ่านมาฉันสามารถใช้เซิร์ฟเวอร์บางตัวในการแก้ไขการใช้ CPU 100% ได้โดย:

ipmitool lan print

และ

ipmitool bmc reset cold

แต่ในประสบการณ์ที่ผ่านมามากที่สุดของฉันข้างต้นตัวเลือกก็จะทำให้เกิดการipmitoolที่จะไม่ตอบสนองและนั่งอยู่ตรงนั้นทำให้ฉันCtrl+ Cมัน

หวังว่านี่จะช่วยใครซักคน


มีปัญหาอะไรecho 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_usบ้าง?
Qian Chen

0

ฉันพบ CentOS 7 ที่กำลังทำงานอยู่นี้และพยายามหาสิ่งที่ทำให้เกิดขึ้น

สำหรับฉันมันคือ "ipmicfg" ของซูเปอร์ไมโครที่เรียกใช้จากสคริปต์ที่ฉันเขียนหรือบางอย่าง ฉันแค่ pkilled มันและการใช้งาน kipmi0 ก็หายไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.