it-swarm-ko.tech

보이는 프로세스에 연결되지 않은 불쾌한 CPU 스파이크

정말 이상한 문제입니다. CPU가 약 5 분 동안 모든 코어에서 80-90 % 사용량이 많은 간헐적 인 CPU 스파이크가 간헐적으로 계속 발생합니다. Htop 또는 시스템 모니터에서 conky를보고 % CPU를 기준으로 정렬하면 CPU 사용량을 설명하는 프로세스를 볼 수 없습니다.

내가 시작한 이래로 내가 바꾼 유일한 것은 :

  • 커널 버전 2.6.35 (홈 컴파일, 2.6.24-1에서 위로)로 이동했습니다.
  • Nvidia 드라이버 256.44를 설치했습니다 (256.34에서 증가).

이제 문제를 찾기 위해 두 가지 모두를 다운 그레이드하려고하지만 가능한 한 과학적 으로이 작업을 수행하고 다운 그레이드하기 전에 CPU 폭발을 일으키는 원인을 찾는 것이 좋습니다.

편집 : 내 정확한 문제는 최신 드라이버에서 엔비디아 회귀처럼 보입니다. 다른 사람들이 비슷한 스파이크를 겪고 있음 .

7
Oli

대부분의 성능 모니터에서 기본적으로 숨겨져있는 커널 스레드 일 수 있습니다. Htop에서 "K"(shift + k)로 커널 스레드를 숨기거나 표시 할 수 있습니다.

1
JanC

"CPU는 약 5 분 동안 모든 코어에서 80-90 % 사용 중"

사용량이 많으면 sysstat 패키지에서 사용 가능한 pidstat를 사용하여 범인을 정확히 찾아 낼 수 있습니다.

pidstat -u | sort -nr -k 7,7 | head -10 및 CPU를 가장 많이 사용하는 프로세스가 가장 중요합니다.

3
Li Lo

일부 셸 스크립트에서 문제의 원인을 찾으려고합니다.

#!/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

이 스크립트에는 MAXLOADCURRLOAD의 두 변수가 있습니다. 첫 번째 것은 100을 곱한 고부하여야합니다. 따라서 급등이 발생하여 시스템 부하가 2 또는 3으로 올라가는 것을 볼 경우 MAXLOAD를 200 정도의 값으로 설정해야합니다. $CURRLOADuptime의 출력을 가져 와서로드를 찾고 점과 선행 0을 제거합니다.

어느 시점에서로드가 높으면 CPU 사용률이 가장 높은 5 개의 프로세스를 인쇄하여 [email protected].

이 스크립트는 스파이크의 원인을 찾는 데 도움이되며 알고있는 경우 문제를 해결할 수 있습니다.

2
qbi

이 문제를 해결할 수있는 최근에 수정 된 버그가 있습니다. Ubuntu를 실행중인 경우 정기적 인 업데이트를 통해 패치를 선택하기 위해 Ubuntu 커널을 사용하는 것이 좋습니다. 지원 및 안정성을 위해 Lucid를 설치하는 것이 좋습니다. Lucid에없는 기능이 필요한 경우 Maverick과 함께 사용할 수 있습니다.

1
Brad Figg

저장할 수있는 상단에서 출력을 얻으려면 다음을 수행하십시오. top -b -n1

이것을 크론 작업에 집어 넣으면 문제가 해결 된 후에도 미세한 프로세스 목록을 볼 수 있습니다. crontab 항목 예 :

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

이것은/tmp에 분당 하나의 파일로 저장됩니다.

1

이것이 커널 문제라고 생각합니다. 공식적으로 테스트 된 버전으로 되돌릴 것입니다.