리눅스에서 시스템 자원 사용량을 확인할 수 있는 명령어 중 가장 자주 쓰이는 게 있다면, 바로 top 명령어 일겁니다.
CPU 사용량, 메모리 사용량, 실행 중인 프로세스 상태 등을 실시간으로 확인할 수 있는 명령어입니다.
이번 글에서는 top 명령어가 정확히 어떤 역할을 하는지, 어떤 옵션들이 있는지, 그리고 실무에서는 어떻게 활용되는지도 같이 정리해볼게요.
🍀 top 명령어란?
top 명령어는 리눅스에서 실행 중인 프로세스 목록과 시스템 자원 사용 현황을 실시간으로 보여주는 명령어입니다.
$ top
터미널에 위처럼 입력하면 아래와 같은 화면이 나타납니다.
top - 15:01:32 up 3:22, 3 users, load average: 0.58, 0.49, 0.43
Tasks: 216 total, 1 running, 215 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 1.2 sy, 0.0 ni, 93.4 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 7844.4 total, 1542.3 free, 2754.1 used, 3548.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4744.5 avail Mem
이 위쪽은 전체 시스템 정보고, 아래쪽은 현재 실행 중인 프로세스 목록이 표시됩니다.
🔍 top 명령어 주요 정보 해석
간단히 주요 정보만 짚어보겠습니다.
- load average
최근 1, 5, 15분간의 평균 시스템 부하. CPU 코어 수보다 높다면 과부하 가능성 있음. - Tasks
실행 중인 총 프로세스 수, 그 중 실행 중(running), 대기(sleeping), 중단(stopped), 좀비(zombie) 상태 개수. - %Cpu(s)
CPU 사용 비율 (us: 사용자, sy: 시스템, id: 유휴 등) - Mem / Swap
메모리와 스왑 사용량. 여유 공간이 적다면 성능 이슈 발생 가능.
🛠 top 명령어 옵션
top은 단순히 실행만 해도 되지만, 다양한 옵션을 통해 더 유용하게 활용할 수 있어요.
옵션 | 설명 |
-d <초> | 갱신 주기를 초 단위로 설정 (기본 3초) |
-n <횟수> | 지정한 횟수만큼 갱신 후 종료 |
-b | 배치 모드. 화면 없이 출력 (스크립트용으로 자주 씀) |
-u <사용자> | 특정 사용자의 프로세스만 표시 |
-p <PID> | 특정 PID만 표시 |
예시로, 1초 간격으로 5번만 갱신하고 종료하고 싶다면
$ top -d 1 -n 5
스크립트에서 CPU 상태를 로그로 저장하고 싶다면
$ top -b -n 1 > top_log.txt
💡 실무에서의 top 사용
개발자나 운영팀에서 top 명령어를 자주 쓰는 이유는 딱 하나예요.
"지금 시스템에 무슨 일이 벌어지고 있는지 알고 싶을 때" 입니다.
1. 서버 느려졌을 때 CPU/메모리 점검
CPU 사용률이 100% 가까이 된다면 무한 루프 도는 프로세스가 있을 가능성 커요. top으로 확인하고 PID를 추적해서 해결합니다.
2. 의심스러운 프로세스 확인
top에서 M 키를 누르면 메모리 사용량 기준으로 정렬됩니다.
P 키는 CPU 사용량 기준 정렬. 이런 식으로 문제 있는 프로세스를 바로 캐치할 수 있어요.
3. 백그라운드 수집
서버 상태를 주기적으로 기록하고 싶을 땐, top -b -n 1을 크론탭에 걸어 로그로 남길 수 있습니다.
* * * * * top -b -n 1 >> /var/log/top_snapshot.log
✅ 정리
- top은 리눅스 시스템 상태를 실시간으로 모니터링하는 강력한 도구.
- 옵션을 적절히 활용하면 더 유용하게 쓸 수 있음.
- 실무에선 성능 문제 진단, 프로세스 감시, 리소스 사용 파악 등에 널리 사용됨.
터미널에서 top 한 줄 입력만으로도, 시스템의 현재 상태를 빠르게 파악할 수 있어요.
자주 써보면 감이 옵니다. 지금 터미널 열어서 바로 한번 해보세요.
'IT·리눅스 > 리눅스' 카테고리의 다른 글
[Linux] APM 설치하기 - 1.APM 구조원리 (0) | 2024.09.07 |
---|---|
[Linux] 리눅스 캐시 메모리 정리하기 (0) | 2024.09.06 |
[Linux] 심볼릭 링크와 하드 링크의 차이점 (0) | 2024.08.09 |
[Linux] 심볼릭 링크 만들기 (0) | 2024.08.09 |
[Linux] 큰 용량의 더미 파일 만들기 (0) | 2024.08.09 |