리눅스에서 RAM 및 CPU 사용량 줄이는 방법

Linux은 강력하고 효율적인 운영 체제이지만 높은 RAM 및 CPU 사용량은 성능을 저하시키고 응용 프로그램을 느리게 만들며 서버, 워크스테이션 또는 임베디드 시스템을 실행할 때 시스템 충돌을 일으킬 수도 있습니다. 리소스 사용량을 최적화하는 것이 원활한 작동을 위해 중요합니다.

이 안내서에서는 Linux에서 RAM 및 CPU 사용량을 줄이는 실용적인 방법을 살펴볼 것입니다. 모니터링 도구, 프로세스 관리, 커널 조정 및 시스템 최적화 기술을 다룰 것이며 시스템이 효율적으로 작동하도록 유지할 것입니다.

1. 리소스 소비가 많은 프로세스 식별

RAM 및 CPU 사용량을 줄이는 첫 번째 단계는 몇 가지 명령줄 도구를 사용하여 가장 많은 리소스를 소비하는 프로세스를 식별하는 것입니다:

a. top 명령어 사용

top 명령어는 CPU 및 메모리 사용량을 포함한 시스템 프로세스의 실시간 뷰를 제공합니다.

top
  • P를 눌러 CPU 사용량에 따라 프로세스를 정렬합니다.
  • M을 눌러 메모리 사용량에 따라 프로세스를 정렬합니다.
  • 과도한 리소스를 소비하는 프로세스를 찾아서 그들의 프로세스 ID(PID)를 메모하세요.
Real-Time System Process Monitoring

b. htop 명령어 사용

htoptop보다 사용자 친화적인 인터페이스를 제공하는 대화형 프로세스 뷰어입니다.

Linux에 htop을 설치하려면 특정 Linux 배포본에 맞는 적절한 명령을 사용하십시오.

sudo apt install htop         [On Debian, Ubuntu and Mint]
sudo dnf install htop         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/htop  [On Gentoo Linux]
sudo apk add htop             [On Alpine Linux]
sudo pacman -S htop           [On Arch Linux]
sudo zypper install htop      [On OpenSUSE]    
sudo pkg install htop         [On FreeBSD]

htop을 실행하여 프로세스를 쉽게 확인하고 관리할 수 있습니다.

htop
  • F6을 눌러 CPU 또는 메모리 사용량에 따라 프로세스를 정렬할 수 있습니다.
  • F9를 눌러 선택한 프로세스를 종료할 수 있습니다.
htop – Interactive Process Viewer

c. ps 명령 사용

ps 명령을 사용하여 프로세스와 리소스 사용량을 나열할 수 있습니다.

ps aux --sort=-%mem | head  # Top memory-consuming processes
ps aux --sort=-%cpu | head  # Top CPU-consuming processes
Check Memory Consuming Processes

2. 불필요한 프로세스 종료

리소스를 많이 사용하는 프로세스를 식별한 후, 해당 프로세스를 해제하기 위해 kill 명령 다음에 PID를 사용하여 종료할 수 있습니다.

kill PID

프로세스가 종료되지 않는 경우, -9 플래그를 사용하여 강제로 종료할 수 있습니다.

kill -9 PID

또는 pkill 명령을 사용하여 이름으로 프로세스를 종료할 수 있습니다.

pkill process_name

3. 시작 프로그램 최적화

부팅 시 자동으로 시작되는 많은 응용 프로그램과 서비스가 가치 있는 시스템 리소스를 사용합니다.

시작 프로그램을 관리하기 위해 다음을 수행하십시오:

a. systemctl 명령어 사용

systemctl 명령어를 사용하여 모든 활성화된 서비스를 나열하십시오.

systemctl list-unit-files --type=service | grep enabled

불필요한 서비스를 비활성화하십시오.

sudo systemctl disable service_name
List Enabled Services

b. GUI 도구 사용

만약 GNOME이나 KDE와 같은 데스크톱 환경을 사용 중이라면, 내장된 시작 프로그램 관리자를 사용하여 불필요한 프로그램을 비활성화하십시오.

4. 스왑 사용 최적화를 위한 Swappiness 값 조정

Swappiness는 시스템이 RAM 대신 스왑 공간을 사용하는 빈도를 제어합니다. 높은 Swappiness 값은 과도한 스왑으로 시스템이 느려지는 원인이 될 수 있습니다.

현재 Swappiness 값을 확인하려면 다음을 수행하십시오:

cat /proc/sys/vm/swappiness

기본 값은 일반적으로 60이지만, Swappiness 값을 줄이기 위해 /etc/sysctl.conf 파일을 편집해야 합니다.

sudo nano /etc/sysctl.conf

다음 라인을 추가하거나 수정하십시오.

vm.swappiness=10

파일을 저장하고 변경 사항을 적용하십시오.

sudo sysctl -p

5. 가벼운 데스크톱 대안 사용

무거운 데스크톱 환경과 응용 프로그램은 시스템 리소스를 과도하게 사용할 수 있으므로 가벼운 대안으로 전환하는 것을 고려하십시오:

a. 데스크톱 환경

XFCE, LXDE, 또는 MATE와 같은 가벼운 옵션으로 GNOME 또는 KDE를 대체하십시오.

b. 응용프로그램

다음과 같이 가벼운 응용프로그램을 사용하십시오:

  • 텍스트 편집기: LibreOfficeAbiWordMousepad로 대체하십시오.
  • 웹 브라우저: 더 적은 확장 기능을 사용하는 Firefox를 사용하거나 Midori와 같은 가벼운 브라우저로 전환하십시오.
  • 파일 관리자: NautilusThunar이나 PCManFM으로 대체하십시오.

6. 캐시 및 버퍼 지우기

Linux는 파일을 캐시하여 성능을 향상시킵니다. 그러나 필요한 경우 캐시를 수동으로 지울 수 있습니다:

sudo sync; sudo sysctl -w vm.drop_caches=3

이 명령은 페이지 캐시, dentries, 그리고 inodes를 지웁니다. 파일 액세스 속도가 일시적으로 느려질 수 있으므로 주의해서 사용하십시오.

7. 커널 매개변수 최적화

커널 매개변수를 조정하거나 최적화하려면 /etc/sysctl.conf 파일을 편집하여 다음을 추가하거나 매개변수를 조정하여 시스템 성능을 향상시키십시오.

vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0

이러한 설정은 더러운 데이터가 디스크에 얼마나 자주 쓰이는지를 제어하여 RAM 사용량을 줄입니다.

8. ZRAM을 사용하여 메모리 사용량 줄이기

Zram과 Zswap은 RAM 사용량을 줄일 수 있는 압축 메모리 기술입니다.

sudo apt install zram-config 
sudo systemctl start zram-config

설치한 후에는 GRUB 구성 파일(/etc/default/grub)을 편집하고 다음을 추가해야 합니다:

GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"

GRUB를 업데이트하고 재부팅하십시오:

sudo update-grub
sudo reboot

9. 프로세스의 CPU 사용량 제한

만약 프로세스가 CPU를 독점하고 있다면, cpulimit을 사용하여 그 사용량을 제한하세요.

sudo apt install cpulimit  # Debian/Ubuntu  
sudo yum install cpulimit  # RHEL/CentOS  

프로세스(예: firefox)의 CPU 사용량을 30%로 제한하세요.

sudo cpulimit -e firefox -l 30

프로세스를 영구적으로 제한하려면 systemd를 사용하세요.

sudo systemctl set-property <service_name> CPUQuota=30%

10. 시스템을 정기적으로 업데이트하세요

시스템을 최신 상태로 유지하면 최신 성능 향상 및 버그 수정 사항을 활용할 수 있습니다.

sudo apt update && sudo apt upgrade  # For Debian/Ubuntu
sudo yum update  # For CentOS/RHEL

문제 해결 팁

  • 프로세스가 kill로 종료되지 않는 경우, kill -9 PID를 사용하여 강제로 종료하세요.
  • zram 또는 zswap이 작동하지 않는 경우, 커널이 해당 기능을 지원하는지 확인하세요.
  • 시스템 성능이 향상되지 않는 경우, 하드웨어를 업그레이드하는 것을 고려해보세요(예: 더 많은 RAM 추가 또는 SSD로 전환).
결론

리눅스에서 RAM 및 CPU 사용량을 최적화하는 것은 모니터링, 조정 및 때로는 하드웨어 업그레이드의 조화입니다. 자원을 많이 사용하는 프로세스를 식별하고 시스템 설정을 조정하며 가벼운 대안을 선택함으로써 시스템에 새 생명을 불어넣을 수 있습니다.

이 최적화 기술을 시도해 보셨나요? 아래 댓글에서 경험을 공유하거나 더 많은 리눅스 가이드와 자습서를 보려면 Tecmint.com을 방문하세요.

Source:
https://www.tecmint.com/reduce-ram-cpu-usage-on-linux/