Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

리눅스 Atop 설치 및 활용 가이드: 실시간 시스템 성능 모니터링의 모든 것

Atop은 이미 종료된 프로세스까지 포함해 시스템의 모든 프로세스에 대한 상세한 보고서를 제공하는 전체 화면 기반 성능 모니터링 도구입니다. 일정한 주기로 시스템 활동을 지속적으로 로깅하고 그 정보를 저장해 두었다가 나중에 활용할 수 있다는 점이 큰 특징입니다.

이렇게 저장된 로그는 시스템 분석, 성능 튜닝, 병목 현상 파악, 문제 디버깅, 예기치 않은 과부하의 원인 추적 등 다양한 용도로 활용할 수 있습니다.

실시간 데이터만 보여주는 top이나 htop 같은 전통적인 도구와 달리, atop은 시간을 거슬러 올라가 과거 특정 구간에 시스템에서 정확히 무슨 일이 있었는지 확인할 수 있습니다. 이러한 특성 덕분에 서버를 안정적으로 운영하는 시스템 관리자에게 특히 유용한 도구로 꼽힙니다.

이 글에서는 atop이 제공하는 기능, 주요 리눅스 배포판에서의 설치 방법, 그리고 시스템 성능 이력을 효과적으로 모니터링하고 분석하는 방법까지 자세히 살펴보겠습니다.

Atop이란 무엇인가?

atop은 리눅스용 전체 화면 시스템·프로세스 모니터링 도구로, 시스템 전체와 개별 프로세스 수준의 활동을 다음과 같이 보고하도록 설계되었습니다.

  • 실행 중인 프로세스뿐 아니라 완료된 프로세스까지 모두 조회
  • 프로세스별 CPU, 메모리, 디스크, 네트워크 사용량 모니터링
  • 모든 활동을 바이너리 파일로 기록하여 사후 분석 가능
  • 좀비(zombie) 및 고아(orphan) 프로세스 탐지
  • 스레드 단위 리소스 사용량 표시
  • 사용자별, 프로그램별 활동 모니터링
  • 최신 커널에서 CPU/메모리/디스크의 PSI(Pressure Stall Information) 표시
  • cgroup v2 지원으로 컨테이너 환경에 최적화
  • Netatop 연동을 통한 프로세스별 네트워크 통계 제공(선택 사항)

atop을 돋보이게 하는 핵심은 이 모든 활동을 일정한 간격(기본값 10분)으로 디스크에 기록한다는 점입니다. 이후 시스템 이력 중 원하는 구간을 재생(replay)하며 당시 상황을 깊이 있게 분석할 수 있습니다.

원인 불명의 크래시를 디버깅하거나, 리소스 남용을 추적하거나, 장기간 사용량 추이를 모니터링해야 할 때 매우 강력한 기능입니다. 특히 GUI가 없는 헤드리스 서버나 운영 환경 시스템에서 그 진가를 발휘합니다.

리눅스에 Atop 설치하기

atop은 대부분의 리눅스 배포판 저장소에서 제공되므로, 패키지 관리자로 간편하게 설치하거나 최신 버전이 필요하다면 소스에서 직접 빌드할 수 있습니다.

RHEL/CentOS/Fedora 계열

RHEL 계열 배포판에서는 먼저 EPEL 저장소를 활성화해야 atop을 설치할 수 있습니다.

sudo dnf install epel-release

EPEL 저장소를 활성화한 뒤에는 dnf 패키지 관리자로 atop 패키지를 손쉽게 설치할 수 있습니다.

sudo dnf install atop

Debian/Ubuntu 계열

Debian 계열 배포판에서는 기본 저장소에서 apt 명령어로 바로 설치할 수 있습니다.

sudo apt-get install atop

Arch Linux / Manjaro

Arch 같은 롤링 릴리스 배포판이나 그 파생 배포판을 사용 중이라면 명령어 한 줄로 설치가 끝납니다.

sudo pacman -S atop

소스 코드로 직접 빌드 (선택 사항)

저장소 버전이 오래되었거나 최신 기능이 필요하다면 소스에서 직접 빌드할 수도 있습니다.

wget https://www.atoptool.nl/download/atop-2.12.0.tar.gz
tar -xzf atop-2.12.0.tar.gz
cd atop-2.12.0
make
sudo make install

참고: 배포판에 따라 build-essential(Debian 계열) 또는 gcc, make 등의 개발 도구가 사전에 필요할 수 있습니다.

atop 설치가 완료되면 백그라운드 로깅 서비스를 활성화해야 부팅 시 자동으로 성능 데이터를 수집할 수 있습니다.

sudo systemctl enable --now atop
sudo systemctl enable --now atop-rotate.timer

리눅스에서 atop 시작하기

atop을 설치하고 로깅 서비스를 활성화했다면, 터미널에서 아래 명령어로 실행해 보세요.

atop

top과 비슷한 동적이고 색상이 적용된 인터페이스가 나타나며, 기본적으로 10초마다 화면이 갱신됩니다.

리눅스 Atop 설치 및 활용 가이드: 실시간 시스템 성능 모니터링의 모든 것atop 시스템 모니터링 화면

로그 기록 주기 변경 (기본값: 600초)

atop은 기본적으로 600초(10분)마다 시스템 활동을 기록합니다. 일반적인 모니터링에는 충분하지만, 짧은 순간의 리소스 스파이크를 추적하거나 성능 병목을 디버깅할 때는 너무 드문 편입니다.

# RedHat 계열
sudo sed -i 's/600/60/' /etc/atop/atop.daily
# Debian 계열
sudo sed -i 's/600/60/' /etc/default/atop

이 설정을 변경하면 atop이 1분마다 로그를 수집하여 시스템 동작을 훨씬 더 세밀하게 파악할 수 있습니다. 간헐적으로 발생하는 문제를 진단하거나, 추세를 분석하거나, 부하가 큰 서버를 감시할 때 특히 유용합니다.

스케줄링 정보 조회 (s 키)

커널이 프로세스를 어떻게 스케줄링하는지 확인하려면 s 키를 누르세요. 각 프로세스가 소비한 CPU 시간과 "running" 상태로 있었던 시간을 확인할 수 있습니다.

atop -s

메모리 사용량 분석 (m 키)

m 키를 누르면 실행 중인 모든 프로세스의 메모리 사용량을 종합적으로 확인할 수 있습니다. VSIZE 열은 할당된 총 가상 메모리를, RSIZE는 현재 RAM에 상주 중인 메모리 양을 나타냅니다.

또한 VGROWRGROW는 현재 측정 구간 동안 프로세스의 가상·상주 메모리가 얼마나 늘거나 줄었는지 보여주며, MEM 열은 각 프로세스가 차지하는 전체 메모리 비율을 표시합니다.

atop -m

디스크 사용률 모니터링 (d 키)

디스크 I/O는 많은 시스템에서 흔한 병목 지점입니다. d 키를 누르면 LVM(Logical Volume Management) 통계와 디스크별 성능 정보를 포함한 시스템 수준의 디스크 활동을 손쉽게 모니터링할 수 있습니다.

RDDSKWRDSK 열은 초당 읽기·쓰기 데이터량(KB/s)을 보여주고, DSKLVM 열은 어떤 볼륨이나 디스크가 가장 활발한지 식별하는 데 도움이 됩니다.

atop -d

상세 프로세스 정보 조회 (v 키)

v 키를 누르면 각 프로세스의 UID, PID, GID, CPU 사용률 등 상세 정보를 확인할 수 있습니다. 숫자 식별자로 특정 사용자나 서비스를 추적하거나, 리소스를 많이 소모하는 프로세스가 어떤 그룹에 속하는지 확인할 때 특히 유용합니다.

atop -v

프로세스 실행 명령어 확인 (c 키)

각 프로세스가 정확히 어떤 명령어로 실행되었는지 확인하려면 c 키를 누르세요. 프로세스 이름 대신 전체 명령줄이 표시되어 어떤 스크립트, 바이너리, 옵션이 사용되었는지 정확히 짚어낼 수 있습니다. 동일 애플리케이션의 여러 인스턴스를 구분하거나 사용자가 제출한 작업을 디버깅할 때 도움이 됩니다.

atop -c

프로그램별 프로세스 그룹화 (p 키)

프로그램 단위의 요약 정보를 보려면 p 키를 사용하세요. 실행 파일별로 데이터를 집계하여 각 프로그램이 몇 번 생성되었고 누적 리소스 사용량이 얼마인지 보여줍니다. 가장 왼쪽 열에는 생성 횟수가, 가장 오른쪽 열에는 실제 프로그램 이름이 표시됩니다.

atop -p

사용자별 프로세스 그룹화 (u 키)

사용자 단위의 리소스 사용량이 궁금하다면 u 키를 누르세요. 모니터링 구간 동안 각 사용자가 현재 실행 중이거나 실행했던 프로세스 수와 누적 CPU·메모리 사용량을 확인할 수 있습니다.

atop -u

네트워크 사용량 모니터링 (n 키)

프로세스별 네트워크 트래픽 통계를 활성화하려면 Netatop 커널 모듈을 설치하고 활성화해야 합니다. 이 모듈은 atop이 프로세스별 송수신 트래픽을 표시할 수 있도록 기능을 확장합니다.

# RedHat 계열
sudo yum install kernel-devel zlib-devel
# Debian 계열
sudo apt-get install zlib1g-dev

다운로드 후 빌드합니다.

wget https://www.atoptool.nl/download/netatop-0.3.tar.gz
tar -xvf netatop-0.3.tar.gz
cd netatop-0.3
make
sudo make install

부팅 후 모듈이 자동으로 로드되고 데몬이 시작되도록 설정합니다.

sudo systemctl start netatop
sudo systemctl enable netatop

설치가 완료되면 atop 안에서 n 키를 눌러 프로세스별 송수신 바이트 수, 패킷 수, 네트워크 관련 오류를 확인할 수 있습니다.

atop -n

과거 로그 열람하기

Atop은 바이너리 로그 파일을 다음 경로에 저장합니다.

/var/log/atop/atop_YYYYMMDD

예를 들어 atop_20250630 파일에는 2025년 6월 30일의 로그가 담겨 있습니다. 이 파일들은 바이너리 형식이라 사람이 직접 읽을 수 없으며, 오직 atop만 해석할 수 있습니다.

오늘 로그에서 특정 시각부터의 구간을 보려면, 예를 들어 오전 5시 5분부터라면 아래처럼 입력합니다.

atop -r -b 05:05 -l 1

각 옵션의 의미는 다음과 같습니다.

  • -r: 로그 파일에서 데이터를 읽도록 지정
  • -b: 조회를 시작할 시각 지정
  • -l 1: 출력을 하나의 구간 스냅샷으로 제한

스페이스바로 다음 구간으로 이동하고, T 키로 이전 구간으로 되돌아갈 수 있으며, Z 키를 누르면 가장 최근 기록으로 바로 이동합니다.

Atop 내장 도움말 활용하기

atop 인터페이스 안에서 ? 키를 누르면 전체 명령어와 단축키 목록을 확인할 수 있습니다. 잘 알려지지 않은 옵션을 찾아보거나 화면 표시 방식을 취향에 맞게 조정할 때 유용합니다.

마무리

이 글이 리눅스 시스템의 문제를 좁혀 찾아내고 미연에 방지하는 데 도움이 되기를 바랍니다. atop 사용법에 대해 궁금한 점이나 추가 설명이 필요하다면 댓글로 남겨주세요.