리눅스 - 모니터링(top)

코린이·2024년 11월 12일

Linux

목록 보기
12/27

📌 top

top 명령어를 사용하여 리눅스 시스템 내 프로세스의 정보와 리소스 사용량을 실시간으로 모니터링 할 수 있다.

시스템의 자원 사용 현황, 실행 중인 프로세스, CPU 및 메모리 등 리소스 사용량을 확인할 수 있다.

top 명령어를 실행 하면 다음과 같은 화면을 확인 할 수 있다.

실행된 하면은 크게 상단 부분(시스템 정보)하단 부분(프로세스 리스트)으로 나뉜다.

✅ top - 상단부

top 명령어 실행 후 상단부에는 시스템의 현재 상태와 성능을 실시간으로 보여준다.
상단부는 크게 다섯 라인으로 나뉘며 각각의 라인은 서로 다른 정보를 가지고 있다.

▶︎ System uptime

System uptime은 시스템의 시간과 관련 있는 정보를 가지고 있다.

  • 13:01:02 : 현재 시스템의 시간 (시간은 설정 국가에 따라 다르게 표시)
  • up 12 days, 23:17 : 현재 시스템이 12일 23시간 17분 동안 연속해서 동작 중임을 의미
  • 0 users : 현재 시스템에 로그인한 사용자 수
  • load average: 0.50, 0.48, 0.45 : 각각 1분, 5분, 15분 간의 평균 부하를 의미 (load average 값은 0 이상의 범위를 가지며, 시스템의 CPU 수에 비례해 1을 초과할 수 있음)

▶︎ Tasks

Tasks는 현재 실행 중인 프로세스의 수를 의미한다.

  • 14 total : 시스템에서 현재 실행 중인 전체 프로세스 수
  • 1 running : 현재 실행 중인 프로세스 수
  • 13 sleeping : 대기 중인 프로세스의 수
  • 0 stopped : 중지된 프로세스의 수
  • 0 zombie : 좀비 프로세스의 수 (프로세스는 종료되었지만, 부모 프로세스가 종료 상태를 읽지 않아 좀비처럼 남아 있는 프로세스의 수)

▶︎ CPU usage

CPU usage는 CPU 사용량을 의미한다.

  • 7.1 us : 사용자 공간에서 시행되는 프로세스의 CPU 사용 비율
  • 5.8 sy : 커널 공간에서 실행되는 프로세스의 CPU 사용 비율
  • 0.0 ni : 우선순위가 변경된 프로세스의 CPU 사용 비율
  • 86.9 id : 유휴 상태(대기 상태)인 CPU 비율
  • 0.0 wa : 입출력 대기 중인 CPU 비율
  • 0.0 hi : 하드웨어 인터럽트 처리에 사용된 CPU 사용 비율
  • 0.2 si : 소프트웨어 인터럽트 처리(네트워크, 시스템 호출 등)에 사용된 CPU 사용 비율
  • 0.0 st : 가상환경에서 다른 가상 머신이 CPU를 사용하면서 해당 가상 머신이 대기해야 했던 시간의 비율

▶︎ Memory usage

Memory usage는 시스템의 물리적 메모리 사용 현황을 의미한다.

  • 3911.6 total : 시스템에 총 3,911.6MB의 메모리가 설치되어 있음을 의미
  • 345.7 free : 현재 사용 가능한 메모리 크기(345.7MB) 의미
  • 2536.6 used : 현재 사용 중인 메모리 크기(2536.6MB) 의미
  • 2819.9 buff/cache : 시스템이 입출력 성능 향상과 데이터를 빠르게 처리하기 위해 사용 중인 캐시 및 버퍼 메모리 공간

▶︎ Swap usage

Swap usage는 스왑 공간의 사용 현황을 의미한다.

  • 스왑 메모리 : 물리적 메모리가 부족할 때 HDD, SSD의 일부 공간을 가상 메모리처럼 사용하여 시스템이 정상적으로 실행할 수 있게 도와주는 메모리 영역

  • 0.0 total : 스왑 공간의 총 용량 의미
  • 0.0 free : 사용 가능한 스왑 공간 의미
  • 0.0 used : 현재 사용 중인 스왑 공간 의미
  • 1375.0 avail Mem : 사용 가능한 메모리를 의미 (시스템에서 사용할 수 있는 메모리)

✅ top - 하단부

top 명령어 실행 후 하단부에는 시스템에서 실행되는 프로세스에 대한 정보를 실시간으로 보여준다. 하단부는 상단부와 다르게 행/열 기반으로 프로세스 정보를 확인할 수 있다.

행은 각각의 프로세스를 의미하며, 열은 각 프로세스의 상태와 정보를 보여준다.

  • PID : 프로세스 ID
  • USER : 프로세스를 실행한 사용자
  • PR : 프로세스의 우선순위 (priority)
  • NI : 프로세스의 니스(nice) 값 (CPU 스케줄링 우선순위를 조정하는 값)
  • VIRT : 프로세스가 사용하는 가상 메모리 총 크기 (KB)
  • RES : 프로세스가 사용중인 실제 물리적 메모리 크기 (KB)
  • SHR : 프로세스가 공유하는 메모리 크기 (KB)
  • S : 프로세스 상태 (S = sleep, R = running, Z = zombie)
  • %CPU : 프로세스가 사용하는 CPU 비율
  • %MEM : 프로세스가 사용하는 메모리 비율
  • TIME+ : 프로세스가 CPU를 사용한 총 시간
  • COMMAND : 실행 중인 명령어

✅ top - 옵션 및 명령어

리눅스에서 top 명령어는 실행 전 옵션과 실행 후 인터랙티브 모드에서 사용할 수 있는 여러 명령어가 있다.

▶︎ 옵션

top 명령어와 함께 사용하는 옵션

top [옵션]
--------- 옵션 list ---------
-u [사용자 이름] : 특정 사용자가 실행 중인 프로세스만 표시
-p [PID] : 특정 프로세스 ID에 대한 정보만 표시
-d [] : 화면 새로고침 주기 지정 (기본 주기는 3초, 초 단위 설정)
-n [n] : top을 갱신할 횟수 지정 (n번 갱신 후 종료, -b와 함께 사용)
-b : 배치 모드로 실행 
-H : 스레드별로 프로세스를 나누어 표시

▶︎ 명령어

top 명령어 인터랙티브 모드에서 여러 가지 명령어를 입력하여 화면을 변경하거나 필터링할 수 있다.

--------- 명령어 list ---------
P : CPU 사용률 순으로 정렬 (내림차순)
M : 메모리 사용량 순으로 정렬 (내림차순)
T : 프로세스가 사용한 시간 순으로 정렬
k : 프로세스를 종료할 수 있는 명령어로, PID를 추가 입력하여 프로세스를 종료
r : 프로세스의 우선순위(nice값)를 변경
z : 컬러 모드로 활성화/비활성화
q : top 명령어 종료

0개의 댓글