제어 불가능한 “kernel_task”프로세스를 어떻게 디버깅합니까? 코어 i7, 2010 MBP에서

최근에는 배터리 수명이 상당히 줄어들었고 꽤 많은 CPU를 사용하는 “kernel_task”프로세스 (2.8ghz 듀얼 코어 i7, 2010 MBP에서 1-6 %의 상수)를 보았습니다. 분명히 kernel_task의 CPU 사용량이 배터리 감소에 기여하고 있다고 생각하며 이유를 찾아야합니다.

구글을 검색 할 때, kernel_task는 OS X의 Windows 버전 “svchost.exe”인 것 같습니다. 실제로 디버깅 할 수없는 악명 높은 모든 프로세스는 스위치 중 하나가 작동 할 때까지 수동으로 전환해야합니다.

통제 불능 인 kernel_task 활동의 맨 아래에 더 쉽게 도달 할 수있는 방법이 있습니까? 나는 그것이 “수정”하면 근본적인 문제를 해결하지 않기 때문에 재부팅을 시도하지 않았다.

활동 모니터는 CPU 사용량을 보여줍니다. Inspect에 도달하면 77 개의 스레드, 2 개의 포트, 시간 및 시간의 CPU 시간, 컨텍스트 스위치가 초당 약 400 개, Mach 메시지 수신 및 출력이 초당 약 6,000 개로 표시됩니다.

어떻게하면이 kernel_task프로세스를 어떻게 검사 또는 모니터링 하고 실제로이 모든 기능을 사용하고 있는지 파악할 수 있습니까?

(참고 : 현재 용의자는 최근 10.6.7 업데이트, 4 베타 10에서 RC 로의 Firefox 업데이트 또는 ScreenResX입니다. 최근에 내가 생각할 수있는 모든 것들입니다)



답변

내가 가지고 비슷한 질문 다음 터미널 명령을 사용하여 kernal_task에 연결된 파일과 프로그램을 식별하는 방법에 대한을 :

kextstat -l -k | awk '{n = sprintf("%d", $4); print n, $6}' | sort -n

다양한 kext와 관련 메모리가 표시됩니다. 예를 들어, 6184960 com.apple.driver.AirPort.Brcm4360나를 위해 큰 돼지이지만 와이파이를 사용하고 싶다면 그것에 대해 많은 것을 할 수 없습니다.

내가받은 제안 중 하나는 위의을로 파이프하여 Apple 이외의 모든 kext가 메모리를 차지하는 것을 찾는 것 grep -v com.apple입니다. Apple 이외의 일부 프로그램이 리소스를 사용하고있을 수 있습니다. 아무것도 깨지 않고 제거 할 수 있어야합니다.

오래된 솔루션은 물론 컴퓨터를 다시 시작하는 것입니다. 때로는 프로세스를 정상적인 CPU 사용량 수준으로 다시 설정하기 만하면됩니다.


답변

다음은 kernel_task가 무엇인지에 대한 훌륭한 설명 입니다. 드라이버 (kext), 네트워크 또는 디스크 활동 일 수 있습니다. 기기를 사용하여 kernel_task프로세스 에 연결할 수는 없습니다 .

로그 (Console.app), 디스크 활동 (예 🙂 iotop fs_usage, 네트워크 활동 (로컬 네트워크 연결 끊기, 네트워크 환경 설정에서 장치 끄기 )과 같은 다른 표시를 찾고 메모리 ( kextunload) 드라이버 를 제거 / 제거하려고합니다. 태블릿, USB 3G 모뎀 등의 타사 제품입니다. kext를 설치하는 응용 프로그램을 확인하십시오.

또한 최근에 충돌이 발생한 경우 파일 시스템이 손상되지 않았는지 확인하십시오. 확인하십시오.


답변

@Christopher가 언급했듯이 열로 인해 kernel_task CPU가 급증 할 수 있습니다. MacOS Lion 10.7의 “Fixing”kernel_task CPU 문제에 이유가 나와 있습니다 . CPU가 가열되면 ACPI_SMC_PlatformPlugin.kext는 실제 CPU로드를 줄이기 위해 CPU주기를 차지합니다.

따라서 외부 팬 또는 SMCFanControl 과 같은 장치를 통해 Mac (예 : 팬)을 식히는 것이 해결책 중 하나 입니다.

이 기사는 그 행동을 유발하는 서브 켄트를 제거하는 또 다른 해결책을 제시합니다. 인정해야하지만 개인적으로 그 행동을 끄는 것이 얼마나 안전한지 확신 할 수 없습니다.


답변

kernel_task다른 프로세스가 시스템 호출이나 리소스 (메모리 또는 디스크 I / O 이벤트)를 과도하게 사용하는 경우 일반적으로 제어 할 수 없습니다.

이 경우 fs_usage보고 유틸리티를 사용 하여 파일 시스템 활동과 관련된 시스템 호출 및 페이지 결함을 실시간으로 표시 할 수 있습니다.

터미널에서이 명령을 실행하십시오 :

sudo fs_usage

그런 다음 어떤 프로세스가 시스템 호출을 자주 수행하는지 관찰하고 사용하지 않는 경우 프로세스를 닫고 종료하십시오.

보다 구체적으로, 시스템 호출에 소요 된 시간을 제공 하는 TIME INTERVAL 열을 확인하십시오 . W경과 시간은 공정이 (이 경우에, 경과 시간이 상기 대기 시간을 포함한다)에서 활성을 나타내는 예약 된 후 나타나는.

따라서 시스템 호출에서 가장 많은 시간 간격을 사용하는 프로세스를 필터링하려면 다음을 실행하십시오.

sudo fs_usage | grep -v 0.0000

마지막 열에서 가장 배고픈 프로세스를 보여줍니다 (커널 시간 측면에서). 정밀도를 위해 0의 수를 조정할 수 있습니다 (제로가 적을수록 더 많은 시간을 소비).

더 많은 아이디어를 얻으 려면 다음을 확인하십시오. 높은 커널 작업 메모리 사용량을 조사하는 방법?


가장 일반적인 문제는 다음과 같습니다.


답변

kernel_task CPU 사용량이 엄청나게 증가했으며 CPU 팬의 플러그가 부분적으로 분리 된 것으로 나타났습니다. kernel_task는 너무 뜨거워 질 때 CPU의 조절과 관련이 있습니다. 당신의 경우에, 당신의 팬은 단지 쓰레기와 먼지로 뭉개 져서 청소해야 할 것입니다.


답변

나는 요세미티 만에 같은 문제가 있었다 이 좋은 영혼 덕분에 이를 기반으로 또 다른 좋은 동료 내가 그것을 해결할 수 있습니다. 나는 여전히 어떤 일이 일어 났는지 이해할 수 없지만 주말 내내 그것을 해결하려고 노력한 후에 나는 포기하고 그의 지시를 맹목적으로 따랐습니다. 활동 모니터에서 절망을보십시오.

항상 백업을 먼저하고 제공된 링크를 읽고 설명하십시오. 나는 발생하는 모든 손해에 대해 책임을지지 않습니다. 경고를 받았습니다.

모델 찾기

$ system_profiler -detailLevel 미니 | grep “모델 식별자 :”

모델 식별자 : MacBookPro8,2

파일 이동 및 백업

$ mkdir -p ~ / 백업

$ cd / 시스템 / 라이브러리 / 확장 /IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources

$ sudo mv MacBookPro8_2.plist ~ / backup /


답변

저는 2011 년 새 맥북 프로로 OSX Lion을 사용하고 있으며 최근에 CPU의 25-30 % 정도에서 kernel_task를 실행하고 팬이 몇 시간 동안 최대 속도로 회전하고 있습니다. 한 번에 한 가지를 시도했지만 해결 된 것은 Finder 앱에서 5 또는 6 개의 창을 닫는 것입니다. 이유를 이해할 수는 없지만 분명히 그랬습니다.