Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

PC가 자꾸 멈추거나 컴퓨터에서 시끄러운 CPU 팬 소음이 들리기 시작했나요? 리눅스에서 CPU 사용량이 높아지는 원인은 다양하지만, 가장 흔한 원인은 오작동하는 애플리케이션입니다. 이 글에서는 리눅스에서 높은 CPU 사용량을 진단하고 해결하는 다양한 방법을 단계별로 소개합니다.

1. 범인 찾기

오작동하는 앱 하나만으로도 가장 빠른 프로세서조차 제 성능을 내지 못할 수 있습니다. 시스템 모니터(System Monitor) 앱이나 터미널의 top 명령어를 사용해 문제를 일으키는 애플리케이션을 찾을 수 있습니다.

터미널을 열고 top을 입력한 후 Enter 키를 누르세요.

리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

기본적으로 모든 프로세스는 CPU 사용률 순으로 정렬되며, CPU를 가장 많이 사용하는 프로세스가 맨 위에 표시됩니다. 특정 앱이 항상 상위 5위 안에 있고, 다른 프로세스보다 CPU 사용률이 현저히 높다면 그 앱이 범인일 가능성이 큽니다.

2. 앱 우선순위 변경(Renice) 또는 강제 종료(Kill)

top은 renice와 kill 기능을 모두 지원하므로, 이 도구들을 이용해 프로세스의 우선순위를 변경하거나 강제로 종료할 수 있습니다.

리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

앱의 nice 우선순위는 실행 중인 다른 프로세스와 비교해 해당 앱이 사용할 수 있는 CPU 자원의 양을 의미합니다. nice 값은 +19부터 -20까지 입력할 수 있으며, 숫자가 클수록 우선순위가 낮아집니다.

top 화면에서 r 키를 누르고 문제가 되는 앱의 PID를 입력하세요. 먼저 "+5" 값으로 변경해 보고, 효과가 없다면 "+10", "+15", 마지막으로 가장 낮은 우선순위인 "+19"까지 단계적으로 시도해 보세요.

리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

앱이 응답하지 않는다면 즉시 종료하는 것이 좋습니다. top 화면에서 k 키를 누르고 PID를 입력한 후 Enter 키를 누르면 해당 앱이 곧바로 종료됩니다.

3. 시스템 전체 업데이트

앱을 실행할 때마다 같은 문제가 반복된다면, 앱을 최신 버전으로 업데이트하면 문제가 해결될 수 있습니다.

터미널에 다음 명령어를 입력하세요:

sudo apt update && sudo apt -y upgrade
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

업데이트가 완료되면 문제가 되던 애플리케이션을 다시 실행해 보세요.

4. 앱 삭제 후 재설치

업데이트로도 문제가 해결되지 않는다면, 프로그램 설정 파일의 잘못된 매개변수 때문일 가능성이 있습니다. 설정을 초기 상태로 되돌리면 도움이 될 수 있습니다.

먼저, 나중에 복원할 수 있도록 현재 설정을 백업해 두세요. 그런 다음 문제가 되는 앱을 완전히 제거합니다:

sudo apt purge APP_NAME
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

앱을 다시 설치합니다:

sudo apt update
sudo apt install APP_NAME
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

이렇게 하면 앱이 초기 상태로 재설정됩니다.

5. 이전 버전으로 되돌리기

앱을 업그레이드해도 문제가 해결되지 않았다면, 대신 이전 버전으로 되돌려 볼 수 있습니다. 개발자가 버그를 수정할 때까지 구버전을 사용해 보는 것도 좋은 방법입니다.

앱을 다운그레이드하려면 먼저 터미널에서 다음 명령어를 실행해 사용 가능한 버전을 확인하세요:

sudo apt policy APP_NAME

현재 설치된 버전 옆에는 별표 세 개(***)가 표시됩니다. 다른 설치 가능한 버전들을 메모해 두세요.

다운그레이드하기 전에 기존 버전을 완전히 제거(purge)하는 것이 좋습니다. 이렇게 하면 설정 관련 문제를 예방할 수 있습니다.

구버전을 설치합니다:

sudo apt install APP_NAME=VERSION
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

6. 대체 앱 사용하기

리눅스의 장점 중 하나는 동일한 작업을 수행할 수 있는 앱이 매우 다양하다는 점입니다. 따라서 특정 앱이 높은 CPU 사용량을 유발한다면, 과감하게 다른 대체 앱으로 교체하는 것이 좋습니다.

7. 핵심 시스템 앱 문제 해결

CPU를 잡아먹는 주범이 systemd나 Xorg 같은 핵심 시스템 앱이라면 어떻게 해야 할까요?

systemd의 경우, 조이패드나 프린터처럼 필수적이지 않은 기능과 보조 장치를 비활성화해 보세요.

문제의 장치가 조이패드, 마우스, 키보드라면, Ubuntu 또는 호환 배포판을 사용 중일 때 터미널에 xinput을 입력해 연결된 모든 장치를 확인할 수 있습니다. 특정 장치를 비활성화하려면 다음 명령어를 사용하세요:

xinput --disable DEVICE_ID
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

장치를 다시 활성화하려면 위 명령어에서 disableenable로 바꿔 실행하면 됩니다.

그 외의 장치라면 해결 과정이 다소 복잡합니다. 먼저 터미널에 lsmod를 입력하고 Enter 키를 눌러 리눅스 커널이 모듈로 불러오는 모든 추가 드라이버를 확인하세요. 문제가 되는 장치의 드라이버를 찾아 이름을 적어 둔 후, 다음 명령어를 입력합니다:

sudo nano /etc/modprobe.d/blacklist.conf

방금 연 파일은 부팅 중에 로드되지 않아야 할 모듈들의 블랙리스트입니다. 이미 몇 가지 항목이 등록되어 있을 수 있습니다. 파일 맨 끝으로 이동해 동일한 문법으로 해당 모듈을 목록에 추가하세요. 항목은 다음과 같은 형태여야 합니다:

blacklist MODULE_NAME

파일을 저장하고 재부팅하면, 바라건대 모든 것이 정상적으로 작동할 것입니다.

Xorg의 경우, 윈도우 매니저의 컴포지터(compositor)를 비활성화해 보세요. 공식적으로는 컴포지터가 CPU 관련 작업을 GPU로 오프로드하지만, 실제로는 항상 그렇지 않습니다. 경우에 따라 컴포징 기능을 활성화하면 무거운 시각 효과들도 함께 활성화됩니다.

때로는 GPU 드라이버 자체가 높은 CPU 사용량의 원인이 되기도 합니다. Xorg는 Nvidia나 AMD 드라이버의 특정 버전과 잘 맞지 않는 경우가 있었습니다. 해결책은 드라이버를 업그레이드하거나 다른 버전으로 다운그레이드하는 것입니다. 또는 GPU의 오픈소스 드라이버를 사용해 볼 수도 있지만, 기능 세트가 완전히 동일하지 않고 일부 기능이 빠져 있을 수 있다는 점에 유의하세요.

8. 커널 교체하기

리눅스 커널 자체가 높은 CPU 사용량의 원인이 되는 경우는 드뭅니다. 하지만 여기까지 시도했는데도 해결책을 찾지 못했다면, 다른 커널을 사용해 보는 것도 나쁘지 않습니다.

공식 사이트에 따르면, Ubuntu에서 인기 있는 Liquorix 커널을 설치하려면 터미널에 다음을 입력하세요:

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update
리눅스에서 높은 CPU 사용량 해결하는 완벽 가이드

이렇게 하면 Liquorix 저장소가 Ubuntu 소스에 추가됩니다. 그다음 커널을 설치하려면 다음 명령어를 사용하세요:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

재부팅하여 새 커널을 활성화하면, 바라건대 CPU 사용량이 정상 수준으로 돌아올 것입니다.

이 중 하나의 해결책이 도움이 되었기를 바랍니다. 그래도 문제가 해결되지 않는다면, taskset을 사용해 애플리케이션에 CPU 코어를 직접 할당해 보는 방법도 있습니다. 마지막으로, 운영체제를 처음부터 다시 설치하거나 다른 배포판으로 갈아타는 것을 고려해 볼 때일 수도 있습니다.