
리눅스에서 CPU 100% 프로세스 찾기와 종료 방법
리눅스 환경에서는 여러 개의 프로세스가 동시에 실행되며 CPU, 메모리, 디스크, 네트워크 등 다양한 자원을 공유합니다. 하지만 특정 프로세스가 CPU를 100% 점유하는 경우, 시스템 성능이 급격히 저하될 수 있습니다. 이번 글에서는 CPU를 100% 사용하는 프로세스를 찾고 종료하는 방법을 실습 형태로 정리해 보겠습니다.
리눅스의 핵심 역할
리눅스 커널은 크게 두 가지 핵심 역할을 담당합니다:
-
프로세스 관리
여러 프로세스가 동시에 실행될 때 CPU 스케줄링, 메모리 사용량 등을 관리합니다. -
하드웨어 자원 관리
CPU, 메모리, 디스크, 네트워크 같은 시스템 자원에 대한 접근 권한을 제어하고 분배합니다.
즉, 모든 프로세스는 리눅스를 거쳐야만 하드웨어 자원을 사용할 수 있으며, 이 구조 덕분에 자원 충돌을 방지할 수 있습니다.
실습: CPU 100% 프로세스 생성 및 확인
1. CPU를 100% 점유하는 프로세스 생성
테스트용으로 yes
명령어를 실행합니다.
yes > /dev/null &
-
yes
명령은 무한히 문자열을 출력하므로 CPU를 계속 사용합니다. -
&
기호를 붙여 백그라운드에서 실행시킵니다.
백그라운드 실행 여부는 jobs
명령어로 확인할 수 있고, PID는 pgrep yes
로 확인할 수 있습니다.
2. TOP 명령어로 확인
top
-
top
실행 시 CPU를 가장 많이 쓰는 프로세스가 상단에 표시됩니다. -
yes
프로세스가 CPU를 100% 사용하는 것을 확인할 수 있습니다. -
종료는
q
키를 눌러top
화면을 빠져나옵니다.
3. PS 명령어로 확인
ps -eo pid,comm,%cpu --sort=-%cpu | head
-
프로세스를 CPU 사용량 기준으로 정렬하여 상위 몇 개만 확인할 수 있습니다.
-
%CPU
값이 높은 프로세스를 빠르게 식별할 수 있습니다.
프로세스 종료하기
1. 일반 종료 (SIGTERM, 신호 15)
kill <PID>
-
프로세스에 SIGTERM(15번 시그널) 을 보내 정상 종료를 시도합니다.
-
시스템 자원을 해제한 뒤 종료되므로 가장 권장되는 방식입니다.
2. 강제 종료 (SIGKILL, 신호 9)
kill -9 <PID>
-
정상 종료가 불가능한 경우 마지막 수단으로 사용합니다.
-
주의: 강제 종료는 파일이나 메모리 자원이 비정상적으로 해제될 수 있어 위험할 수 있습니다.
실습 정리
-
yes
명령으로 CPU 100% 프로세스를 생성 -
top
과ps
명령어로 프로세스 확인 -
kill
명령으로 정상 종료, 필요시kill -9
로 강제 종료
마무리
리눅스 환경에서 CPU 100% 프로세스를 관리하는 방법은 실제 서버 운영 시 자주 맞닥뜨리게 되는 중요한 문제입니다.
핵심 요약:
-
먼저
top
또는ps
로 문제 프로세스를 식별한다. -
kill
(SIGTERM)으로 정상 종료를 시도한다. -
불가능할 경우
kill -9
로 강제 종료한다.
실습을 반복하면서 프로세스 관리에 익숙해진다면, 운영 환경에서 발생하는 다양한 문제를 빠르게 진단하고 해결할 수 있을 것입니다.
추가적으로 리눅스 기초 명령어 공부하고 싶다면 왕초보를 위한 리눅스 기초를 참고하세요. https://reallinux.co.kr/course/linux_beginner