Kipmi0 ăn tới 99,8% cpu trên centos 6.4


15

Chúng tôi có CentOS 6.4 và kipmi0được hiển thị là 99,8% cpu và 0,0% bộ nhớ và tải trung bình là 1,00. Chúng ta nên làm gì để khắc phục điều này?


bạn nên bắt đầu bằng cách đọc www-01.ibm.com/support/ lòng
0x7c0

2
@ Tôi đã đọc nó trước đây vì vậy nó chỉ nói bỏ qua Tôi có nên bỏ qua nhưng các máy khác của tôi không có vấn đề này?
biz14

Các hệ thống khác có giống với hệ thống này không? Bạn sẽ phải xác định rằng chúng là. Phải có một cái gì đó khác biệt cơ bản giữa chúng. Phần sụn? Phiên bản RPM giống nhau?
slm

@ Có hai máy giống nhau với cùng một centos 6.4 tôi nên tìm gì bây giờ?
biz14

So sánh các kết quả đầu ra từ lshwdmidecodesẽ là lĩnh vực tiếp theo của tôi để xem xét.
slm

Câu trả lời:


5

Gỡ lỗi

Các hệ thống khác có giống với hệ thống này không? Bạn sẽ phải xác định rằng chúng là. Phải có một cái gì đó khác biệt cơ bản giữa chúng. Phần sụn? Phiên bản RPM giống nhau?

Bạn có thể sử dụng các công cụ như lshw, dmidecodevà nhìn vào dmesglog các manh mối như những gì khác nhau và những gì là nguyên nhân gốc rễ.

Tôi sẽ có được một cơ sở tốt về RPM được cài đặt bằng cách chạy lệnh này trên một trong những hệ thống không thể hiện vấn đề này và hệ thống đó và so sánh các danh sách gói để đảm bảo tất cả chúng đều có cùng phiên bản.

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

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

Sau đó lấy các tệp trên cùng một máy và thực hiện sdiff của 2 tệp:

 sdiff machine1_rpms.txt machine2_rpms.txt

Nguyên nhân tiềm năng # 1

Trang web của IBM có công nghệ này có tiêu đề: Kipmi0 có thể hiển thị việc sử dụng CPU tăng lên trên Linux , liên quan đến vấn đề này. Theo vấn đề này, về cơ bản bạn có thể bỏ qua vấn đề.

Mô tả vấn đề

Quá trình kipmi0 có thể cho thấy việc sử dụng CPU tăng lên trong Linux. Việc sử dụng có thể tăng tới 100% khi thiết bị IPMI (Giao diện quản lý nền tảng thông minh), chẳng hạn như BMC (Bộ điều khiển quản lý Baseboard) hoặc IMM (Bộ điều khiển quản lý tích hợp) đang bận hoặc không phản hồi.

Sửa chữa

Không cần sửa chữa. Bạn nên bỏ qua việc sử dụng CPU tăng lên vì nó không ảnh hưởng đến hiệu năng hệ thống thực tế.

Làm việc xung quanh

  1. Nếu sử dụng thiết bị IPMI, hãy đặt lại BMC hoặc khởi động lại hệ thống.
  2. Nếu không sử dụng thiết bị IPMI, hãy dừng dịch vụ IPMI bằng cách ban hành lệnh sau:

    dịch vụ ipmi dừng

Giải pháp tiềm năng số 2

Tôi tìm thấy bài đăng này trên blog của ai đó có tiêu đề đơn giản: vấn đề kipmi0 . Vấn đề này nghe giống hệt của bạn. Vấn đề được bắt nguồn từ một vấn đề với 2 mô-đun hạt nhân đang được tải như một phần của lm_sensorsgói.

Đây là 2 mô-đun hạt nhân:

  • ipmi_si
  • ipmi_msghandler

Làm việc xung quanh

Bạn có thể xóa thủ công các lệnh này bằng các lệnh sau:

rmmod ipmi_msghandler
rmmod ipmi_si

Để sửa lỗi này vĩnh viễn, bạn sẽ cần phải vô hiệu hóa việc tải các mô-đun hạt nhân cụ thể này trong một trong các lm_sensorstệp cấu hình, bằng cách nhận xét chúng như sau:

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

Khởi động lại lm_sensorssau khi thực hiện những thay đổi này:

/etc/init.d/lm_sensors

Tôi đã đến cả trang web và trong hệ thống của mình, tôi không tìm thấy tệp này / etc / sysconfig / lm_sensors. Một cái gì đó buồn cười khi tôi thực hiện sắp xếp trên tệp đầu tiên là Asc nhưng tệp thứ hai là desc? Thứ hai là làm thế nào để xuất sự khác biệt thành một tập tin. Vâng, tôi có thể thấy khá nhiều sự khác biệt.
biz14

vâng, bây giờ tôi đã làm lần thứ hai, nó được sắp xếp giảm dần. Tôi không hiểu bạn làm thế nào để sử dụng grep "|". Tôi nên làm gì khác để khắc phục vấn đề này?
biz14

Tất cả những gì tôi đã nói là để làm điều này: sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"sẽ lấy ra tất cả sự khác biệt b / w các tệp 2 .txt. Có nhiều cách khác để làm điều đó nhưng đó là một cách.
slm

Tôi đã chạy lệnh này và đây là đầu ra 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 là máy vấn đề và máy khác không có vấn đề. Nhưng khi tôi tìm thủ công 12_rpms có 247 dòng và 11_rpms có 263 nhưng sdiff chỉ là một? Vì vậy, bước tiếp theo của tôi bây giờ dựa trên sự khác biệt này là gì?
biz14

Xin vui lòng gửi những tập tin này trên pastebin.com .
slm

24

Theo Tài liệu IPMI :

luồng này có thể sử dụng rất nhiều CPU tùy thuộc vào hiệu năng của giao diện. Điều này có thể lãng phí rất nhiều CPU và gây ra nhiều vấn đề khác nhau trong việc phát hiện CPU nhàn rỗi và sử dụng thêm năng lượng. Để tránh điều này, kipmid_max_busy_us đặt lượng thời gian tối đa, tính bằng micrô giây, kipmid sẽ quay trước khi ngủ để đánh dấu. Giá trị này đặt cân bằng giữa hiệu năng và chất thải CPU và cần được điều chỉnh theo nhu cầu của bạn. Có thể, một ngày nào đó, tự động điều chỉnh sẽ được thêm vào, nhưng đó không phải là điều đơn giản và ngay cả điều chỉnh tự động cũng cần phải được điều chỉnh theo hiệu suất mong muốn của người dùng.

Vì vậy, chúng ta có thể thực thi lệnh này để đặt tham số kipmid_max_busy_us:

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

Trong hệ thống của chúng tôi, sau khi cài đặt tham số này, cpu của kipmi0 giảm xuống 15%.

Bạn có thể thử điều này.

Để thay đổi liên tục, bạn có thể định cấu hình các tùy chọn cho mô-đun hạt nhân ipmi_si.
Tạo một tệp trong /etc/modprobe.d/, tức là /etc/modprobe.d/ipmi.confvà thêm nội dung sau: Bây giờ mỗi khi mô-đun hạt nhân ipmi_si được tải vào kernel, tham số sẽ được đặt tự động và chính xác.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


Mặc dù đây có thể là câu trả lời chính xác, nó được coi là thực tiễn tốt nhất trên các trang SE để nêu chi tiết lý do như một phần câu trả lời của bạn, cũng như trích dẫn bất kỳ liên kết bên ngoài nào. Bằng cách đó, nếu liên kết bên ngoài trở nên không còn tồn tại, logic và lý luận vẫn có thể xem được ở đây.
Drav Sloan

Có một cách tiêu chuẩn để làm cho nó có hiệu lực vĩnh viễn?
tgharold

Trên CentOS / RHEL, lệnh đó có thể được thực hiện vĩnh viễn bằng cách thêm nó vào /etc/rc.d/rc.local. RC.local chạy sau tất cả các tập lệnh init khác.
tgharold

1

kipmi0 có thể bị vô hiệu hóa hoàn toàn trên CentOS 6 bằng cách thêm ipmi_si.force_kipmid=0làm tham số kernel

Kiểm tra tại màn hình khởi động GRUB bằng cách tô sáng kernel bạn muốn khởi động, nhấn 'a' để sửa đổi các tham số và nối thêm ipmi_si.force_kipmid=0

Tạo vĩnh viễn bằng cách nối thêm ipmi_si.force_kipmid=0các dòng kernel có liên quan vào/boot/grub/grub.conf

LƯU Ý: Trong các bản phân phối có ipmi_si làm mô-đun hạt nhân riêng biệt, sử dụng tệp conf modprobe.d là phù hợp hơn. Trong CentOS ipmi_si được tích hợp vào ảnh kernel, vì vậy các cấu hình modprobe không hoạt động.


1

CentOS 6 có trình điều khiển ipmi được biên dịch trong kernel. Nếu bạn không cần hỗ trợ ipmi thì chỉ cần vô hiệu hóa nó grub.conf

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

1

Tôi tìm thấy sự giúp đỡ sau đây với vấn đề này:

ipmitool bmc info

Điều này dường như đánh thức IPMI và sau đó nó ngừng sử dụng 100% lõi.

Tôi cũng tìm thấy những điều hữu ích sau:

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

Ngoài ra, trong quá khứ tôi đã có thể trên một số máy chủ giải quyết việc sử dụng CPU 100% bằng cách:

ipmitool lan print

ipmitool bmc reset cold

nhưng theo kinh nghiệm gần đây nhất của tôi, các tùy chọn ở trên sẽ ipmitoolkhông phản hồi và ngồi ở đó, khiến tôi Ctrl+ Cnó.

Hy vọng điều này sẽ giúp được ai đó.


Có vấn đề gì để làm echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_uskhông?
Qian Chen

0

Tôi tìm thấy cái này đang chạy CentOS 7 và cố gắng tìm hiểu xem cái gì đang sử dụng nó.

Đối với tôi, đó là "ipmicfg" của Supermicro chạy từ một kịch bản tôi đã viết hoặc một cái gì đó. Tôi vừa mới mua nó và việc sử dụng kipmi0 đã biến mất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.