it-swarm-vi.com

Các gai CPU khó chịu không được kết nối với bất kỳ quy trình có thể nhìn thấy nào

Vấn đề thực sự kỳ lạ ở đây. Tôi liên tục nhận được các đột biến CPU thực sự khó chịu, trong đó CPU bận rộn đến 80-90% trên tất cả các lõi trong khoảng 5 phút. Khi tôi nhìn vào conky, trong htop hoặc màn hình hệ thống và sắp xếp theo% CPU, tôi không thể thấy bất kỳ quy trình nào chiếm phần lớn việc sử dụng CPU này.

Điều duy nhất tôi đã thay đổi kể từ khi điều này bắt đầu là:

  • Tôi đã chuyển sang phiên bản kernel 2.6.35 (được biên dịch tại nhà, tăng từ 2.6.24-1)
  • Tôi đã cài đặt trình điều khiển Nvidia 256.44 (tăng từ 256.34)

Bây giờ, tôi sẵn sàng hạ cấp một trong hai hoặc cả hai để tìm ra vấn đề nhưng tôi muốn làm điều này một cách khoa học nhất có thể và tìm hiểu điều gì gây ra vụ nổ CPU trước khi tôi hạ cấp.

Chỉnh sửa: Vấn đề chính xác của tôi trông giống như một hồi quy nvidia trong trình điều khiển mới nhất của họ. Những người khác đang nhận được các đột biến tương tự .

7
Oli

Nó có thể là một luồng nhân, những cái này được ẩn theo mặc định trong hầu hết các màn hình hiệu suất. Trong htop, bạn có thể ẩn/hiển thị các luồng nhân với "K" (shift + k).

1
JanC

"CPU bận đến 80-90% trên tất cả các lõi trong khoảng 5 phút"

Việc sử dụng nhiều có thể sẽ cho phép bạn xác định thủ phạm bằng cách sử dụng pidstat có sẵn trong gói sysstat.

Chỉ cần chạy pidstat -u | sort -nr -k 7,7 | head -10 và quá trình sử dụng nhiều CPU nhất phải là dòng trên cùng.

3
Li Lo

Tôi sẽ cố gắng tìm ra nguyên nhân của vấn đề với một số tập lệnh Shell:

#!/bin/sh
MAXLOAD=100
CURRLOAD=`uptime | sed '[email protected]*load average: \([^,]*\).*@\[email protected]' | sed '[email protected]\?.0\[email protected]@'`

if [ $CURRLOAD -gt $MAXLOAD ]; then                                             
  ps -eo tid,pcpu,comm | sort -n -k 2 | tail -n 5 | \
    mail -s "High load" -e [email protected]
fi

Tập lệnh có hai biến MAXLOADCURRLOAD. Cái đầu tiên phải là tải cao nhân với 100. Vì vậy, nếu bạn gặp phải một đột biến và thấy tải hệ thống tăng lên 2 hoặc 3, thì bạn nên đặt MAXLOAD thành một giá trị nào đó khoảng 200. $CURRLOAD lấy đầu ra của uptime, tìm tải và loại bỏ dấu chấm cũng như các số 0 đứng đầu.

Nếu tải tại một thời điểm nào đó cao, nó sẽ in ra năm quy trình với mức sử dụng CPU nhiều nhất và gửi chúng đến [email protected].

Kịch bản này sẽ giúp bạn tìm ra lý do tăng đột biến và nếu bạn biết nó, bạn có thể giải quyết vấn đề của mình.

2
qbi

Có một số lỗi đã được sửa gần đây có thể khắc phục vấn đề này. Nếu bạn đang chạy Ubuntu, tôi khuyên bạn nên gắn với kernel Ubuntu để chọn các bản vá thông qua các bản cập nhật thông thường. Tôi khuyên bạn nên cài đặt Lucid để hỗ trợ và ổn định. Bạn có thể đi với Maverick nếu có những tính năng mà bạn biết rằng không có trong Lucid mà bạn cần.

1
Brad Figg

Để có được đầu ra từ đầu mà bạn có thể lưu: top -b -n1

Dán cái này trong một cronjob và bạn có thể xem danh sách quy trình tinh tế ngay cả khi vấn đề đã biến mất. Ví dụ mục crontab:

* * * * * top -b -n1 > /tmp/top_output_$(date +%Y-%m-%d_%H:%M:%S)

Điều này sẽ lưu nó trong một tệp mỗi phút trong/tmp

1
Dennis Kaarsemaker

Tôi nghĩ rằng đây là một vấn đề hạt nhân. Tôi sẽ trở lại một phiên bản thử nghiệm chính thức.

0