느린 Mac은 거의 항상 너무 많은 리소스 — CPU 사이클, RAM, 디스크 I/O — 를 소비하는 하나 이상의 프로세스 때문에 발생합니다. 해결책은 간단해 보입니다. 문제가 되는 프로세스를 찾아 종료하면 됩니다. 하지만 어떤 프로세스를 종료해야 하는지, 그리고 종료하는 것이 과연 올바른 선택인지 아는 것이야말로 대부분의 가이드가 다루지 못하는 부분입니다. 이 글에서는 빠른 키보드 단축키부터 고급 진단 도구까지 macOS에서 사용할 수 있는 모든 방법을 살펴보며, Mac을 다시 제 속도로 되돌릴 수 있도록 도와드립니다.
빠른 답변
- 멈춘 앱을 가장 빠르게 종료하는 방법: Cmd + Option + Esc를 눌러 ‘응용 프로그램 강제 종료’ 창을 열고, 앱을 선택한 뒤 강제 종료를 클릭하세요.
- CPU/RAM을 가장 많이 사용하는 항목 찾기: Activity Monitor(응용 프로그램 → 유틸리티)를 열고 CPU 또는 메모리 기준으로 정렬하세요.
- 터미널에서 프로세스 종료하기: 응답하지 않는 프로세스에는
kill <PID>또는kill -9 <PID>를 실행하세요. 이름으로 종료하려면killall <name>을 사용하세요. - 실시간 차트를 통한 심층 진단: ProcXray를 사용하면 CPU, 메모리, 디스크 I/O를 동시에 모니터링하고, 전체 프로세스 트리를 확인하며, Activity Monitor가 놓치는 짧게 실행되는 프로세스까지 포착할 수 있습니다.
왜 내 Mac이 느려질까?
macOS는 언제든 수백 개의 프로세스를 관리합니다 — 시스템 데몬, 백그라운드 에이전트, 사용자 애플리케이션이 모두 세 가지 핵심 리소스를 두고 경쟁합니다.
- CPU — 한 프로세스가 CPU 코어를 독점하면 나머지 모든 것이 느려집니다. 흔한 원인으로는 통제 불능 상태의 브라우저 탭, 빌드 도구, 그리고
mds_stores(Spotlight) 같은 인덱싱 서비스가 있습니다. - 메모리(RAM) — macOS는 메모리 압박을 처리하기 위해 메모리 압축과 스왑을 사용하지만, 스왑 활동이 늘어나는 순간 디스크 I/O가 급증하고 시스템 전체가 버벅거립니다. Apple의 Memory Usage Performance Guidelines에 따르면, macOS는 물리 RAM이 부족해지면 메모리 페이지를 압축하기 시작하고, 최후의 수단으로만 디스크로 스왑합니다 — 바로 이때 느려짐을 체감하게 됩니다.
- 디스크 I/O — 대량의 데이터를 읽거나 쓰는 프로세스(Time Machine 백업, Xcode 인덱싱, 데이터베이스 엔진)는 저장장치 대역폭을 포화시켜, CPU와 RAM이 멀쩡해 보여도 앱이 무지개 커서를 띄우게 만들 수 있습니다.
느린 Mac을 고치는 핵심은 어떤 리소스 가 병목인지, 그리고 어떤 프로세스 가 그 원인인지를 찾아내는 것입니다.
방법 1: 키보드 단축키로 강제 종료
macOS에서 오작동하는 앱을 가장 빠르게 종료하는 방법:
- Cmd + Option + Esc(⌘ + ⌥ + Esc)를 누릅니다.
- 목록에서 응답하지 않는 애플리케이션을 선택합니다.
- 강제 종료를 클릭합니다.
한계
- 사용자에게 보이는 애플리케이션만 표시되며, 백그라운드 프로세스나 데몬은 보이지 않습니다.
- 리소스 사용량에 대한 정보가 없어, 어떤 앱이 문제인지 추측할 수밖에 없습니다.
- 시스템 프로세스나 root 소유의 프로세스는 종료할 수 없습니다.
이 방법은 특정 앱이 눈에 띄게 멈춰 있고 그것이 어떤 앱인지 이미 알고 있을 때 가장 좋습니다.
방법 2: Activity Monitor
Activity Monitor는 Apple이 기본 제공하는 프로세스 관리 도구입니다. 실행 중인 모든 프로세스를 기본적인 리소스 지표와 함께 보여줍니다.
프로세스를 찾아 종료하는 방법
- Activity Monitor를 엽니다(Cmd + Space를 누르고 “Activity Monitor”를 입력한 뒤 Enter를 누릅니다).
- CPU 탭을 클릭하고 % CPU를 기준으로 내림차순 정렬하여 가장 부하가 큰 프로세스를 찾습니다.
- 프로세스를 선택하고 도구 모음의 X 버튼(중지)을 클릭합니다.
- 먼저 종료를 선택합니다. 프로세스가 멈추지 않으면 강제 종료를 클릭합니다.
메모리 압박 확인하기
메모리 탭으로 전환합니다. 하단의 메모리 압박 그래프가 실상을 알려줍니다.
- 녹색 — 여유 메모리가 충분합니다. 느려짐은 CPU나 디스크와 관련되었을 가능성이 큽니다.
- 노란색 — 메모리가 압박을 받고 있습니다. macOS가 페이지를 압축하고 있습니다. 성능이 저하될 수 있습니다.
- 빨간색 — 심각한 메모리 압박입니다. 시스템이 디스크로 스왑하고 있습니다. 큰 애플리케이션을 즉시 종료하거나 닫으세요.
디스크 활동 확인하기
디스크 탭으로 전환하여 어떤 프로세스가 가장 많은 데이터를 읽거나 쓰는지 확인합니다. 기록된 바이트 기준으로 정렬하여 SSD를 혹사시키는 프로세스를 찾아냅니다.
한계
- 프로세스 트리 보기 없음 — 부모-자식 관계를 볼 수 없어, 부모가 계속 새 프로세스를 생성하는 동안 자식 프로세스만 종료하게 될 수 있습니다.
- 짧게 실행되는 프로세스 포착 불가 — 시작되어 리소스를 소비하고 1초 안에 종료되는 프로세스는 결코 나타나지 않습니다.
- 프로세스별 실시간 추세 차트 없음 — 추세가 아니라 스냅샷만 볼 수 있습니다.
- 환경 변수나 명령줄 인수를 검사할 수 없습니다.
방법 3: 터미널 명령어
터미널은 프로세스에 대한 정밀하고 스크립트로 제어 가능한 권한을 제공합니다.
리소스를 많이 쓰는 프로세스 찾기
# CPU 사용량 기준으로 정렬된 상위 프로세스 표시 (실시간 업데이트)
top -o cpu
# 모든 프로세스의 CPU와 메모리를 한 번에 스냅샷
ps aux --sort=-%cpu | head -20
PID로 프로세스 종료하기
# 정상 종료 (SIGTERM) — 프로세스가 정리할 시간을 줌
kill 12345
# 강제 종료 (SIGKILL) — 즉시, 정리 없음
kill -9 12345
이름으로 프로세스 종료하기
# 이름이 일치하는 모든 프로세스 종료
killall Safari
# 이름으로 강제 종료
killall -9 node
과도한 디스크 I/O를 사용하는 프로세스 찾기
# 프로세스별 디스크 I/O를 실시간으로 모니터링 (sudo 필요)
sudo iotop
# 대안: fs_usage로 파일 시스템 호출 추적
sudo fs_usage -f filesys | head -100
한계
top과ps는 스냅샷을 보여줄 뿐 — 시간에 따른 추세를 추적하지 않습니다.iotop은sudo가 필요하며 해석하기 어려울 수 있습니다.- 시각적 프로세스 트리 없음 —
pstree나ps -axjf를 엮어서 관계를 수동으로 추적해야 합니다. - 짧게 실행되는 프로세스는 새로 고침 간격 사이에 쉽게 놓칩니다.
- 잘못된 PID를 종료하면 중요한 시스템 서비스가 중단될 수 있습니다.
방법 4: ProcXray — 심층 프로세스 진단
느린 Mac이 명백히 통제 불능인 앱 때문이 아닐 때는 더 깊은 가시성이 필요합니다. ProcXray는 CPU, 메모리, 디스크 I/O의 실시간 모니터링을 하나의 인터페이스로 제공하며, Activity Monitor와 터미널이 제공하는 것을 훨씬 뛰어넘는 도구를 함께 갖추고 있습니다.
실시간 성능 차트
ProcXray의 도구 모음은 CPU 사용량, 메모리 압박, 네트워크 I/O를 실시간으로 업데이트되는 지표로 표시하며, 프로세스를 선택하면 아래 세부 정보 패널에 CPU와 메모리 추세 차트가 담긴 History 탭이 나타납니다. Activity Monitor의 스냅샷 보기와 달리 이 차트는 연속적인 추세를 보여주므로, 메모리 사용량이 꾸준히 증가하는 프로세스(메모리 누수일 가능성이 큼)나 주기적으로 CPU를 급등시키는 프로세스를 쉽게 발견할 수 있습니다.
의심스러운 프로세스를 고정해 두고 시간에 따른 개별 리소스 추세를 관찰할 수 있는데, 이는 Activity Monitor를 여는 순간 사라져 버리는 간헐적 느려짐을 진단하는 데 매우 중요합니다.
프로세스 트리 보기
트리 보기로 전환하면 전체 부모-자식 계층 구조를 볼 수 있습니다. 이것이 중요한 이유는 다음과 같습니다.
xcodebuild같은 빌드 도구는 수십 개의 자식 프로세스(clang,ld,swift-frontend)를 생성해 함께 CPU를 포화시킬 수 있습니다. Activity Monitor는 이들을 아무 관계도 없는 별개의 항목으로 표시합니다.- 통제 불능의 셸 스크립트는 자식 프로세스를 끝없이 분기시킬 수 있습니다. 자식을 종료하는 것은 소용없습니다 — 부모를 종료해야 합니다.
- 브라우저 프로세스(Chrome, Electron 앱)는 탭마다 하나의 프로세스를 생성합니다. 트리 보기는 어떤 탭이나 확장 프로그램이 원인인지 정확히 보여줍니다.
짧게 실행되는 프로세스 포착
ProcXray는 새로 생성된 프로세스를 녹색으로, 최근에 종료된 프로세스를 빨간색으로 강조하여 종료된 후에도 계속 보이도록 유지합니다. 이를 통해 상당한 리소스를 소비하지만 Activity Monitor가 표시하기 전에 종료되어 버리는 짧게 실행되는 프로세스 — 컴파일러 호출, 셸 헬퍼, cron 작업 — 를 포착합니다.
스마트 프로세스 관리
아무 프로세스나 마우스 오른쪽 버튼으로 클릭하면 상황별 작업을 사용할 수 있습니다.
- 종료 — 정상 종료(SIGTERM),
kill <PID>와 동일합니다. - 일시 중단 — 프로세스를 종료하지 않고 멈춥니다(SIGSTOP). 리소스를 많이 쓰는 프로세스를 잠시 멈췄다가 나중에 재개하고 싶을 때 유용합니다.
- HUP/QUIT 신호 보내기 — 구성을 다시 로드하거나 디버깅용 코어 덤프를 유발합니다.
- Finder에서 보기 — 실행 파일로 이동하여 그 프로세스가 실제로 무엇인지 확인합니다.
- 명령줄 복사 — 프로세스가 실행된 정확한 인수를 봅니다.
디스크 I/O 병목 진단
아무 프로세스의 Connections 탭을 열면 열려 있는 모든 파일 디스크립터 — 프로세스가 읽기 또는 쓰기용으로 연 모든 파일 — 를 볼 수 있습니다. 한 프로세스가 수백 개의 파일을 열어 두고 있다면, 그것이 디스크 I/O 병목의 원인일 가능성이 큽니다. 이는 lsof -p <PID>를 실행하는 것과 같지만, 구조화되고 필터링 가능한 인터페이스로 제공됩니다.
환경 변수 검사
때로는 잘못된 구성 때문에 Mac이 느려집니다 — 디버그 모드로 실행 중인 백그라운드 프로세스, 상세 로깅이 켜진 빌드 도구, 거대한 플러그인 디렉터리를 로드하는 앱 등입니다. ProcXray의 Environment 탭은 프로세스가 상속한 모든 환경 변수를 보여주며, 클릭 한 번으로 JSON으로 내보내 추가 분석에 활용할 수 있습니다.
느린 Mac을 체계적으로 고치는 방법
무작정 프로세스를 종료하는 대신, 다음 진단 절차를 따르세요.
1단계: 병목 지점 파악하기
| 증상 | 가능성 높은 병목 | 확인할 것 |
|---|---|---|
| 팬이 돌고 앱이 버벅임 | CPU | CPU 사용량으로 정렬 — 100%를 넘는 프로세스 찾기 |
| 앱 전환이 오래 걸리고 무지개 커서가 뜸 | 메모리 | 메모리 압박 확인 — 노란색/빨간색이면 문제 |
| 파일 저장이 느리고 앱이 잠깐 멈춤 | 디스크 I/O | 프로세스별 디스크 읽기/쓰기 속도 확인 |
| 모든 것이 느림 | 복합적 | 셋 다 확인 — 흔히 연쇄 효과 |
2단계: 원인 찾기
- CPU인 경우: 100%를 초과하는 CPU를 사용하는 프로세스를 찾습니다(멀티코어 Mac에서는 한 프로세스가 200%, 400% 등을 사용할 수 있습니다). 흔한 원인:
mds_stores,kernel_task,WindowServer, 브라우저 렌더러 프로세스. - 메모리인 경우: 메모리 사용량(footprint)으로 정렬합니다. 총 메모리 사용량이 물리 RAM을 초과하는지 확인합니다. 메모리가 꾸준히 증가하는 앱(누수 가능성)을 찾습니다.
- 디스크 I/O인 경우: 기록된 바이트가 많은 프로세스를 찾습니다. 열린 파일 디스크립터 수를 확인합니다. 흔한 원인:
backupd(Time Machine),mds(Spotlight),bird(iCloud 동기화).
3단계: 결정하기 — 종료, 일시 중단, 아니면 조사?
| 상황 | 조치 |
|---|---|
| 응답하지 않는 멈춘 앱 | 강제 종료 (Cmd + Option + Esc 또는 kill -9) |
| 일시적으로 CPU를 너무 많이 쓰는 백그라운드 프로세스 | 일시 중단하고, 작업이 끝나면 재개 |
| 알 수 없는 프로세스 | 먼저 검사 — 종료하기 전에 코드 서명, 실행 파일 경로, 부모 프로세스 확인 |
시스템 프로세스(kernel_task, WindowServer) | 종료하지 말 것 — 근본 원인 조사(흔히 발열로 인한 스로틀링이나 주변기기 문제) |
| 부모 프로세스가 리소스를 많이 쓰는 자식을 계속 생성 | 자식이 아니라 부모를 종료 |
비교: Mac 프로세스 종료 방법
| 기능 | 강제 종료 (⌘⌥⎋) | Activity Monitor | 터미널 | ProcXray |
|---|---|---|---|---|
| 사용자 앱 종료 | 예 | 예 | 예 | 예 |
| 백그라운드 프로세스 종료 | 아니요 | 예 | 예 | 예 |
| CPU/메모리/디스크 I/O 표시 | 아니요 | 별도 탭 | top/iotop | 동시에 |
| 프로세스 트리 보기 | 아니요 | 아니요 | 제한적 | 예 |
| 짧게 실행되는 프로세스 포착 | 아니요 | 아니요 | 아니요 | 예 |
| 프로세스 일시 중단 및 재개 | 아니요 | 아니요 | kill -STOP | 우클릭 |
| 환경 변수 검사 | 아니요 | 아니요 | macOS에 /proc 없음 | 예 |
| 코드 서명 검증 | 아니요 | 아니요 | codesign CLI | 예 |
| 정규식 프로세스 검색 | 아니요 | 텍스트 필터 | grep | 내장 |
자주 묻는 질문
Mac이 느린데 Activity Monitor에는 CPU 사용량이 낮게 표시되는 이유는?
병목이 CPU가 아닐 수 있습니다. 메모리 압박(노란색이나 빨간색이면 시스템이 디스크로 스왑 중)과 디스크 I/O(프로세스가 SSD를 포화시킴)를 확인하세요. 또한 CPU를 급등시켰다가 빠르게 종료되는 짧게 실행되는 프로세스는 Activity Monitor의 새로 고침 주기에 나타나지 않습니다. ProcXray는 이러한 일시적 프로세스를 포착하여 종료된 후에도 표시합니다.
Mac에서 프로세스를 강제 종료해도 안전한가요?
강제 종료(kill -9 또는 강제 종료)는 SIGKILL을 보내, 데이터를 저장하거나 정리할 기회를 주지 않고 프로세스를 즉시 종료합니다. 브라우저나 편집기 같은 사용자 앱에서는 저장하지 않은 작업을 잃을 수 있습니다. 시스템 프로세스의 경우 강제 종료가 불안정성을 유발할 수 있습니다. 항상 정상 종료(kill <PID> 또는 일반 종료 명령을 통한 SIGTERM)를 먼저 시도하고, 프로세스가 완전히 응답하지 않을 때만 강제 종료하세요.
kernel_task가 CPU를 많이 사용하는 것을 어떻게 막나요?
kernel_task는 기기가 과열될 때 macOS가 CPU를 조절하는 방식입니다. 종료할 수 없으며 종료해서도 안 됩니다. 대신 근본 원인을 해결하세요. 발열 문제를 일으킬 수 있는 주변기기를 분리하고, 통풍구가 막히지 않았는지 확인하고, SMC를 재설정하거나(Intel Mac), 오작동하는 센서가 있는지 점검하세요. Apple의 지원 문서 HT207359에서 이를 자세히 다룹니다.
macOS에서 종료, 강제 종료, Kill의 차이는 무엇인가요?
- 종료 (Cmd + Q) — 정중한 요청을 보냅니다. 앱은 닫기 전에 파일 저장을 요청할 수 있습니다.
- 강제 종료 (Cmd + Option + Esc) — SIGTERM을 보냅니다. 앱은 종료되어야 하지만 여전히 거부할 수 있습니다.
- Kill (
kill -9) — SIGKILL을 보냅니다. 운영체제가 프로세스를 즉시 종료합니다. 프로세스는 이 신호를 가로채거나 차단하거나 무시할 수 없습니다.
어떤 프로세스가 내 디스크 I/O를 전부 쓰고 있는지 어떻게 찾나요?
Activity Monitor에서 디스크 탭으로 전환하고 기록된 바이트 기준으로 정렬하세요. 터미널에서는 sudo iotop을 실행해 프로세스별 디스크 I/O를 실시간으로 모니터링하세요. ProcXray에서는 프로세스를 선택하고 아래 세부 정보 패널의 Open Files 탭을 열어 열린 모든 파일 디스크립터를 검사하여, 어떤 파일을 읽거나 쓰는지 정확히 확인할 수 있습니다.
프로세스와 그 모든 자식 프로세스를 한 번에 종료할 수 있나요?
터미널에서는 kill -- -<PGID>를 사용해 전체 프로세스 그룹을 종료할 수 있지만, PGID를 찾으려면 추가 명령이 필요합니다. ProcXray의 트리 보기는 전체 계층 구조를 보여줍니다 — 부모를 우클릭하여 종료하면, 정상적으로 동작하는 프로세스의 경우 macOS가 고아가 된 자식들을 자동으로 정리합니다.
출처 및 참고 자료
- Apple — Memory Usage Performance Guidelines
- Apple Support — If kernel_task uses a large percentage of Mac CPU
- Apple Support — How to use Activity Monitor
killcommand reference- macOS Process Monitoring Guide
- ProcXray vs Activity Monitor: Full Comparison
ProcXray 다운로드 → — 14일 무료 체험, macOS Sonoma+, Apple Silicon 및 Intel.