벌룬 OS X kernel_task 및 유선 메모리 사용량을 진단하는 방법은 무엇입니까?


18

근본 원인을 진단하는 데 어려움을 겪고있는 매우 이상한 문제가 있습니다.

14GB RAM 이있는 Mac Pro (2008, 8 코어 2.8 GHz, 8800GT)가 있습니다 (이 문제로 인해 최근에 업그레이드되었습니다!).

시스템을 부팅하고 로그인하면 vm_stat / top / Activity Monitor에 kernel_task에 약 150MB가 할당되어 있고 시스템에 약 800MB의 유선 메모리가 할당되어 있음이 표시됩니다.

처음에는 800MB의 응용 프로그램이 실행되지 않은 상태에서 많은 유선 메모리가 할당되는 것처럼 보이지만 더 나빠집니다. (NB : 유선 잠금, 스왑 불가능 메모리)

아주 짧은 시간이 지나고 때로는 터미널을 시작하는 것처럼 간단한 일로 인해 kernel_task가 8-900MB의 RMEM (Real Mem)으로 확장되며 유선 메모리는 1.6GB로 가속됩니다 (모든 추가 메모리 요청은 커널의 유선 RAM).

모든 것을 종료하면 (IE : 실행중인 응용 프로그램 없음, 활동 모니터 또는 터미널을 맨 위에 표시), kernel_task RSIZE 또는 유선 메모리 사용량이 크게 감소하지 않습니다. 반대로 시스템에 작업을로드하면 유선 메모리가 줄어들지 않으며, 스와핑보다 우선적으로 줄어들지 않습니다.

로그 아웃했다가 다시 로그인하면 비트 (450MB kernel_task, 1.28GB 유선)가 줄어들지 만 다시 시작하지는 않습니다.

나는 별난 kext를 실행하지 않고있다. 그리고 kextstat는 거기에 거대한 메모리 할당을 보여주지 않는다. 가장 큰 메모리는 약 4MB의 메모리에서 com.apple.nvidia.nv50hal입니다.

이러한 상황이 발생했을 때 머신은 전반적으로 느리게 느껴집니다. 당연히 엄청난 양의 RAM이 페이징 불가능으로 표시되어 있기 때문입니다.

그래서 몇 가지 질문이 있습니다.

1)이 유선 메모리를 모두 할당 한 것을 진단하는 좋은 방법이 있습니까? 종종 응용 프로그램을 실행하지 않고 kernel_task 크기의 2 배 이상입니다. 실제 메모리 총계는 합산되지 않는 것 같습니다. 어디에나 설명되지 않은 RAM이 많이있는 것 같습니다.

2) 커널이 갑자기 6 배의 메모리를 필요로하는 상황은 무엇입니까?


답변:


5

커널이 평소보다 많은 메모리를 사용하는 이유를 조사하기 위해 다른 도구를 사용할 수 있습니다.

  1. Activity Monitor 를 실행 하여 가장 많은 메모리를 사용하는 프로세스를 확인하십시오. 따라서 kernel_task평소보다 많은 메모리를 사용하는 다른 작업이 아닙니다 (그러면 킬을 고려하십시오).
  2. 터미널 vm_stat 1에서 실행하여 실시간 메모리 통계를 확인하고 메모리가 실제로 1 초마다 증가하는지 확인하십시오.
  3. fs_usage루트로 도구를 실행 하여 시스템 호출 및 페이지 오류를 실시간으로 모니터링하십시오.
  4. 터미널에서 실행되는 여러 프로세스의 더티 / 익명 할당의 합계를 확인하려면 다음을 수행하십시오.

    sudo footprint -all -categories -swapped -collapseSharing
    

    스왑 된 양 (사용자 또는 커널 메모리 당)과 같은 메모리 정보를 수집합니다.

  5. 더 많은 메모리를 사용하는 커널이라고 생각되면 zprint도구를 사용해보십시오 .

    sudo zprint -t -s | head -n20
    

    커널 영역에 대한 정보를 보여줍니다

디스크 캐시를 강제로 제거 (일부 메모리 확보)하려면 다음을 시도하십시오.

sync && sudo purge

커널 작업 메모리 사용량을 조사하는 방법을 참조하십시오 . AD SE에서


3

커널 확장은 사용자 모르게 운영 체제에서 실행할 수있는 수많은 코드 조각 중 하나 일뿐입니다. 컨설턴트 카나리아라는 작은 파이썬 기반 유틸리티를 사용하여 그중 몇 가지를 찾는 데 도움이됩니다.

그래도 잠재적 인 범인이 나타나지 않으면 새로 설치를 통해 부팅하고 문제를 재현 할 수 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.