리눅스 atop 설치 및 사용법 서버 성능 모니터링 최강 툴
리눅스 서버를 운영하다 보면 CPU, 메모리, 디스크, 네트워크 사용량을 종합적으로 모니터링해야 할 때가 많습니다. 대부분은 top
명령어를 먼저 떠올리지만, top은 프로세스 중심이라 전체적인 자원 흐름을 보기에는 한계가 있습니다. 이런 상황에서 강력한 대안으로 떠오르는 것이 atop입니다. 이번 글에서는 atop 설치 방법부터 사용법, 그리고 실제 출력 화면을 해석하는 방법까지 정리해 보겠습니다.
왜 atop을 사용해야 할까?
일반적인 top은 CPU와 메모리 사용량만 보여주지만, atop은 다음과 같은 점에서 차별화됩니다.
- CPU, 메모리, 디스크, 네트워크 사용량을 한눈에 확인 가능
- 프로세스별 I/O, 디스크 쓰기·읽기, 네트워크 트래픽까지 추적 가능
- 로그 저장 기능 제공 → 특정 시점의 서버 상태를 재현 가능
- 장시간 모니터링 후 분석 가능 → 장애 원인 추적에 유리
리눅스 atop 설치 방법
대부분의 리눅스 배포판에서 atop은 기본 저장소를 통해 설치할 수 있습니다.
Ubuntu / Debian 계열
sudo apt update
sudo apt install atop -y
CentOS / RHEL 계열
sudo yum install epel-release -y
sudo yum install atop -y
설치 후에는 atop
명령어를 입력하면 시스템 모니터링 화면이 바로 실행됩니다.
출력 화면 해석하기
atop 출력은 여러 구역으로 나뉘어 있으며, 각각 중요한 의미를 가집니다.
- CPU: 시스템, 사용자, 대기, idle 비율 표시. idle이 99%라면 CPU는 여유로운 상태.
- MEM: 전체 메모리, 사용 중, 캐시, 버퍼 상태 표시.
- DSK: 디스크 읽기/쓰기 현황, 평균 I/O 지연(ms).
- NET: TCP/UDP 트래픽, 네트워크 카드별 수신·송신 패킷.
- 프로세스 리스트: 각 프로세스의 CPU 사용량, 메모리 증가량, I/O 발생량.
예를 들어 Apache(httpd
), MariaDB(mariadbd
), SSH(sshd
) 등이 정상적으로 동작하며, CPU 점유율이 0%라면 서버 부하는 거의 없는 상태라는 것을 알 수 있습니다. atop 자체는 측정을 위해 소량의 CPU(약 1%)를 사용합니다.
atop 로그 기능
atop의 진정한 강점은 로그 기능입니다. 단순히 실시간 모니터링에 그치지 않고 다음과 같이 기록할 수 있습니다.
sudo atop -w /var/log/atop.log 60
위 명령은 60초 간격으로 리소스 사용 현황을 /var/log/atop.log
파일에 기록합니다. 이후 atop -r /var/log/atop.log
명령으로 특정 시간대의 서버 상태를 재현할 수 있습니다. 이는 갑작스러운 장애 원인 파악이나 성능 분석에 매우 큰 도움이 됩니다.
PRC (Process)
- sys 0.10s | user 0.04s → 커널모드/유저모드에서 사용된 CPU 시간
- proc 97 → 전체 프로세스 개수
- trun 1 → 실행 중인 프로세스
- tslpi 288 → 인터럽트 대기 중인 프로세스
- tslpu 44 → 유저 레벨에서 슬립 중인 프로세스
- zombie 0 → 좀비 프로세스 없음
- exit 0 → 종료된 프로세스 없음
CPU (CPU 사용률)
- sys 1% → 커널이 사용 중인 CPU
- user 0% → 사용자 프로세스 사용
- idle 99% → 대부분 대기 상태
- irq 0% → 인터럽트 없음
- wait 0% → I/O 대기 없음
- curf 2.60GHz → 현재 CPU 주파수
현재 CPU는 거의 부하가 없는 상태입니다.
CPL (Load Average & Context Switch)
- avg1/avg5/avg15 = 0.00 → 부하 전혀 없음
- csw 2286 → context switch 횟수
- intr 762 → 인터럽트 횟수
- numcpu 1 → CPU 코어 1개
MEM (메모리)
- tot 1.7G → 총 메모리
- free 1.2G → 사용 가능한 메모리
- cache 297.9M → 캐시
- buff 36.1M → 버퍼
- slab 54.7M → 커널 데이터 구조
- shrss 0.0M → 공유 메모리 없음
메모리 또한 충분히 여유 있는 상태입니다.
SWP (스왑)
- tot 8.0G → 스왑 크기
- free 8.0G → 사용하지 않음
- vmcom 2.6G → 가상 메모리 커밋
- vmlim 8.9G → 커밋 가능 한계
DSK (디스크)
- busy 0% → 부하 없음
- read 0 | write 3 → 디스크 거의 안 쓰임
- avio 0.33ms → 평균 I/O 대기 시간
NET (네트워크)
- tcpi 30 | tcpo 65 → TCP 입력/출력
- pcki 42 | pcko 61 → 패킷 입출력
- si 2 Kbps | so 14 Kbps → 네트워크 속도
- erri 0 | erro 0 → 에러 없음
주요 프로세스
- PID 6335 atop → atop 자체, CPU 1% 사용
- PID 802 mariadbd → MySQL/MariaDB 서버
- PID 6102, 6101, 6280, 6103 httpd → Apache 웹서버
- PID 5925 sshd → SSH 서비스
- 기타 systemd, rsyslogd, kworker → 기본 시스템 서비스
Atop을 통해 서버 상태를 확인해본 결과, 현재 시스템은 CPU, 메모리, 디스크, 네트워크 모두 안정적인 상태이며 자원 사용률이 매우 낮습니다. 웹 서버(Apache)와 DB 서버(MariaDB)가 정상적으로 동작하고 있으며, 특별한 부하는 없는 상황입니다.