it-swarm-id.com

Paku CPU jahat yang tidak terhubung ke proses yang terlihat

Masalah yang sangat aneh di sini. Saya sebentar-sebentar terus mendapatkan paku CPU yang benar-benar tidak menyenangkan, di mana CPU menjadi 80-90% sibuk di semua core selama sekitar 5 menit. Ketika saya melihat conky, di htop atau monitor sistem, dan mengurutkan berdasarkan% CPU, saya tidak dapat melihat proses yang menyumbang banyak penggunaan CPU ini.

Satu-satunya hal yang saya ubah sejak ini dimulai adalah:

  • Saya pindah ke kernel versi 2.6.35 (rumah dikompilasi, naik dari 2.6.24-1)
  • Saya menginstal driver Nvidia 256.44 (naik dari 256.34)

Sekarang, saya bersedia untuk menurunkan salah satu/keduanya untuk menemukan masalah tetapi saya lebih suka melakukan ini secara ilmiah mungkin dan mencari tahu apa yang menyebabkan ledakan CPU sebelum saya downgrade.

Sunting: Masalah saya yang sebenarnya terlihat seperti regresi nvidia pada driver terbaru mereka. Orang lain mendapatkan paku serupa .

7
Oli

Ini mungkin sebuah utas kernel, yang disembunyikan secara default di sebagian besar monitor kinerja. Di htop Anda dapat menyembunyikan/menampilkan utas kernel dengan "K" (shift + k).

1
JanC

"CPU menjadi 80-90% sibuk di semua core selama sekitar 5 menit"

Sebanyak itu penggunaan mungkin akan memungkinkan Anda untuk menentukan penyebab dengan menggunakan pidstat yang tersedia dalam paket sysstat.

Cukup jalankan pidstat -u | sort -nr -k 7,7 | head -10 dan proses yang menggunakan CPU paling banyak harus menjadi baris teratas.

3
Li Lo

Saya akan mencoba mencari penyebab masalah dengan beberapa skrip 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

Script memiliki dua variabel MAXLOAD dan CURRLOAD. Yang pertama harus menjadi beban tinggi dikalikan dengan 100. Jadi jika Anda menemukan lonjakan dan melihat beban sistem naik menjadi 2 atau 3, maka Anda harus menetapkan MAXLOAD ke beberapa nilai sekitar 200. $CURRLOAD mengambil output dari uptime, mencari beban dan menghapus titik serta memimpin nol.

Jika beban pada titik tertentu adalah tinggi, ia mencetak lima proses dengan utilisasi CPU paling banyak dan mengirimkannya ke [email protected].

Skrip ini akan membantu Anda menemukan alasan lonjakan dan jika Anda mengetahuinya, Anda mungkin dapat menyelesaikan masalah Anda.

2
qbi

Ada beberapa bug yang diperbaiki baru-baru ini yang dapat memperbaiki masalah ini. Jika Anda menjalankan Ubuntu, saya sarankan tetap menggunakan kernel Ubuntu untuk mengambil patch melalui pembaruan reguler. Saya akan merekomendasikan menginstal Lucid untuk dukungan dan stabilitas. Anda dapat menggunakan Maverick jika ada fitur yang Anda ketahui tidak ada di Lucid yang Anda butuhkan.

1
Brad Figg

Untuk mendapatkan output dari atas yang dapat Anda simpan: top -b -n1

Masukkan ini ke dalam cronjob dan Anda dapat melihat daftar proses yang sangat teliti bahkan setelah masalahnya hilang. Contoh entri crontab:

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

Ini akan menyimpannya dalam satu file per menit dalam/tmp

1

Saya pikir ini adalah masalah kernel. Saya akan kembali ke versi yang diuji secara resmi.