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?
lshw
và dmidecode
sẽ là lĩnh vực tiếp theo của tôi để xem xét.
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?
lshw
và dmidecode
sẽ là lĩnh vực tiếp theo của tôi để xem xét.
Câu trả 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
, dmidecode
và nhìn vào dmesg
log 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
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
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
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_sensors
gói.
Đây là 2 mô-đun hạt nhân:
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_sensors
tệ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_sensors
sau khi thực hiện những thay đổi này:
/etc/init.d/lm_sensors
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.
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.conf
và 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
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=0
là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=0
cá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.
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
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
và
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ẽ ipmitool
khô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 đó.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
không?