> 패키지 및 시스템 관리 > top

top 명령어 가이드: 실시간 시스템 프로세스 모니터링

`top` 명령어(table of processes)는 Linux 및 Unix 계열 운영체제에서 시스템의 프로세스 활동을 실시간으로 모니터링하는 데 사용되는 도구입니다. CPU 사용률, 메모리 사용량, 실행 중인 프로세스 목록 등 시스템의 현재 상태에 대한 동적인 개요를 제공하여, 성능 문제를 진단하고 시스템 자원 사용을 파악하는 데 필수적입니다. 이 가이드를 통해 `top` 명령어의 기본 사용법과 상호작용 기능을 익혀보세요.

top 개요

`top`은 시스템 자원(CPU, 메모리, 스왑) 사용량과 각 프로세스의 상세 정보를 주기적으로 업데이트하여 보여줍니다. 이를 통해 어떤 프로세스가 시스템 자원을 많이 사용하고 있는지 쉽게 식별할 수 있으며, 시스템의 전반적인 건강 상태를 모니터링할 수 있습니다.

top의 주요 역할

`top` 명령어는 주로 다음과 같은 목적으로 사용됩니다:

주요 활용 분야

  • {'key': '시스템 모니터링', 'value': '실시간으로 CPU, 메모리, 스왑 공간 사용량을 확인합니다.'}
  • {'key': '프로세스 관리', 'value': '실행 중인 프로세스의 상태를 파악하고, 필요시 종료하거나 우선순위를 조정합니다.'}
  • {'key': '성능 문제 진단', 'value': '시스템 속도 저하나 응답 없음 현상의 원인을 분석합니다.'}
  • {'key': '자원 사용 최적화', 'value': '과도한 자원을 사용하는 프로세스를 식별하고 조치를 취합니다.'}

top 출력 화면 구성

`top` 명령어는 크게 두 부분으로 나뉘어 정보를 표시합니다:

상단 요약 정보

시스템의 전반적인 상태를 요약하여 보여줍니다.

  • `uptime`: 시스템이 부팅된 이후 경과 시간
  • `load average`: 지난 1분, 5분, 15분 동안의 시스템 평균 부하 (실행 대기 큐에 있는 프로세스 수)
  • `Tasks`: 총 프로세스 수, 실행 중, 절전 중, 정지, 좀비 프로세스 수
  • `%Cpu(s)`: CPU 사용률 (us: 사용자, sy: 시스템, ni: nice, id: 유휴, wa: I/O 대기 등)
  • `MiB Mem`: 물리 메모리(RAM)의 총량, 사용량, 여유 공간, 버퍼/캐시 사용량
  • `MiB Swap`: 스왑 메모리의 총량, 사용량, 여유 공간

하단 프로세스 목록

실행 중인 각 프로세스의 상세 정보를 보여줍니다. 이 목록은 기본적으로 CPU 사용률(%) 기준으로 정렬됩니다.

  • `PID`: 프로세스 ID
  • `USER`: 프로세스를 실행한 사용자
  • `PR`: 우선순위 (Priority)
  • `NI`: Nice 값 (우선순위 조절에 사용)
  • `VIRT`: 프로세스가 사용하는 가상 메모리 총량
  • `RES`: 프로세스가 사용하는 실제 물리 메모리(RAM) 양 (Resident Memory)
  • `SHR`: 프로세스가 공유하는 메모리 양 (Shared Memory)
  • `S`: 프로세스 상태 (R: 실행 중, S: 휴면, Z: 좀비, T: 정지 등)
  • `%CPU`: 프로세스의 CPU 사용률 (실시간)
  • `%MEM`: 프로세스의 메모리 사용률 (실시간)
  • `TIME+`: 프로세스가 사용한 총 CPU 시간
  • `COMMAND`: 프로세스 실행 명령어

`top` vs `htop`

`htop`은 `top`의 개선된 버전으로, 더 사용자 친화적인 인터페이스(색상, 마우스 지원)와 기능(스크롤, 검색, 직접 종료)을 제공합니다. 대부분의 경우 `htop`이 더 편리합니다. `htop`이 설치되어 있지 않다면 패키지 관리자를 통해 설치할 수 있습니다 (예: `sudo apt install htop`).

top 명령어 옵션 및 상호작용

`top`은 시작 시 명령줄 옵션을 지정할 수 있으며, 실행 중에도 다양한 키 입력을 통해 화면 표시 방식이나 프로세스 정렬, 종료 등의 작업을 수행할 수 있습니다.

1. 명령줄 시작 옵션

2. top 실행 중 상호작용 키

생성된 명령어:

명령어를 조합해 보세요.

설명:

`top` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

`top` 명령어의 다양한 활용 예시들을 통해 시스템 자원 사용 현황을 실시간으로 모니터링하고 문제를 진단하는 방법을 익혀보세요.

기본 시스템 모니터링 시작

top

가장 기본적인 `top` 명령어 실행으로, 시스템의 현재 상태와 프로세스 목록을 3초마다 업데이트하여 보여줍니다.

CPU 사용률 상위 5개 프로세스 확인 (1초 간격)

top -d 1 -n 5

`top`을 실행한 후 1초 간격으로 5번만 업데이트하고 종료합니다. 이는 특정 시점의 CPU 부하 원인을 빠르게 파악할 때 유용합니다.

특정 사용자(root)의 프로세스만 모니터링

top -u root

시스템의 모든 `root` 사용자가 실행하는 프로세스만 필터링하여 보여줍니다. 시스템 데몬이나 서비스의 자원 사용량을 추적할 때 유용합니다.

특정 프로세스 ID (PID)만 모니터링

top -p 12345

PID가 `12345`인 단일 프로세스에 대한 정보만 실시간으로 모니터링합니다. 특정 애플리케이션의 자원 소모를 정밀하게 추적할 때 유용합니다.

메모리 사용률이 높은 순으로 정렬 (실행 중 상호작용)

top # then press Shift + m

`top`이 실행 중인 상태에서 `Shift + m` 키를 눌러 프로세스 목록을 메모리 사용률이 높은 순서로 정렬합니다. (명령줄에서 직접 지정할 수는 없음)

특정 프로세스 종료 (실행 중 상호작용)

top # then press 'k', enter PID, then optionally '9' for SIGKILL

`top`이 실행 중인 상태에서 `k` 키를 누르면 종료할 프로세스의 PID를 입력하라는 프롬프트가 나타납니다. PID를 입력하고 `Enter`를 누르면 기본적으로 SIGTERM 시그널이 전송됩니다. 강제 종료하려면 시그널 번호 9를 입력합니다.


동일 카테고리 명령어