리눅스 top 명령어(CPU, 메모리 점유율 확인)

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스 top 명령어는 구동 중인 OS의 상태를 보여주는 명령어이며 table of processes의 뜻을 가지고 있습니다. 총 메모리 사용량, CPU 사용량 등을 보여주며 각 프로세스의 구체적인 메모리와 CPU 사용량을 개별적으로 확인할 수 있습니다.

  • top 명령어
  • 리눅스 서버의 메모리와 CPU 사용량 등의 시스템을 확인할 수 있는 명령어
  • 어떤 리소스가(CPU, RAM, 디스크 I/O)가 고갈되었는지 파악
  • 프로세스 명령어
  • 위치: /usr/bin/top

Ⅰ. 리눅스 top 명령어 기본 사용

top 명령어는 대부분 옵션 없이 사용하지만 일반적인 명령어와 동일하게 기본 사용은 옵션과 명령 인자로 이루어져 있습니다.

top -[옵션] [명령 인자]

1. top 명령어 기본 옵션

2. top 명령어 옵션 활용

  • 실시간 출력으로 7번 출력
 top -b -n7
  • 실시간 출력으로 7번 출력한 내용을 top_output 파일로 리디렉션
 top -b -n7 > top_output
  • 출력으로 리디렉션을 하더라도 화면에 출력하지 않기 때문에 화면에 출력하려면 tee 명령어와 같이 사용합니다.
 top -b -n7 | tee top_output

Ⅱ. top 명령어

  • 기본 명령어 출력 화면
top - 12:55:01 up 22:47,  1 user,  load average: 0.06, 0.03, 0.01
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
MiB Mem :   1760.5 total,   1058.7 free,    530.2 used,    331.2 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1230.3 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                        
    740 nobody    20   0 1079368  10796   5592 S   0.3   0.6   0:10.35 httpd                                          
   4005 root      20   0       0      0      0 I   0.3   0.0   0:01.50 kworker/0:0-events                             
      1 root      20   0  103444  12844   9796 S   0.0   0.7   0:05.55 systemd                                        
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd                                       
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                         
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                     
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq                                   
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                          
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri                    
     10 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                    

1. top 명령어 영역 설명

1.1 top 영역

uptime 명령어에서 나오는 옵션과 동일한 정보를 확인할 수 있습니다.

리눅스 uptime 명령어 설명
top - 14:08:25 up 38 days, 8:02,  1 user,  load average: 1.70, 1.77, 1.68                               
  • load average: 평균 로드 값은 총 CPU 코어 1개 당 1.0 100% 사용이며, 예를 들어 4코어일 경우 CPU 자원이 고갈된 것이 아님을 알 수 있습니다.

1.2 tasks 영역

tasks 영역에서는 전체 기동 중인 total, running, sleeping, stopped, zombie 5가지의 프로세스 상태를 확인할 수 있습니다. 프로세스는 I/O 기반의 업무를 수행하며, 업무 수행 중에 CPU는 idle 타임(유휴 시간)에 들어갑니다.

  • tasks: 현재 CPU에 의해 실행 중인 Process들의 상황을 확인
  • total: 가동 중인 전체 프로세스 수
  • run: 실행 중인 프로세스 수
  • sleep: 유휴상태의 프로세스
  • stopped:정지된 프로세스
  • zombie: 좀비 프로세스
  • kill 명령어로 강제 종료해도 무방함.
  • 좀비 프로세스
  • 대부분의 프로세스는 부모 프로세스(root)가 죽으면 자식 프로세스도 자동 종료되지만 자식 프로세스가 남아 있는 경우를 좀비 프로세스라고 함.
  • 좀비 프로세스가 많아지면 시스템이 느려지는 원인 중 하나가 될 수 있음.
  • 시스템 재부팅 시 좀비 프로세스는 자동 제거.

1.3  Cpu(s): CPU 정보 확인

Cpu(s) 라인은 CPU가 현재 하고 있는 일에 대한 정보를 제공합니다. 3번째 라인에서 top 명령어로 cpu 사용률 확인하기를 할 수 있습니다.

  • us: user CPU time
  • 사용자 공간에서 실행된 CPU 비중
  • nice가 적용되지 않은 사용자 프로세스가 소비한 CPU 사용량을 시간의 비율로 나타냄.
  • sy: system CPU time
  • 시스템 자체에서 사용하는 CPU사용률
  • 커널과 커널 프로세스의 CPU 사용량을 시간의 비율로 보여줌.
  • ni: nice CPU time
  • nice 정책에 의해 사용하는 CPU 사용률
  • nice를 적용한 프로세스가 있을 경우 해당 프로세스의 CPU 사용량을 시간의 비율로 보여줌.
  • id: cpu idle time
  • CUP가 사용되지 않는 유휴 상태의 비율.
  • 느려진 시스템에서 이 수치가 높게 나타난다면 시스템이 느려진 원인이 CPU 부하 때문이 아니라는 것을 뜻함.
  • wa: I/O wait
  • CPU가 I/O를 기다리면서 소비한 시간의 비율을 나타낸 것.
  • 느려진 시스템의 원인을 찾을 때 중요한 지표이며, 지표가 낮으면 원인을 찾을 때 디스크 혹은 네트워크 I/O를 확실하게 배제할 수 있기 때문.
  • hi: hardware interrupts
  • 하드웨어 인터럽트를 제공하는데 CPU가 소비한 시간의 비율을 나타낸 수치
  • si: software interrupts
  • 소프트웨어 인터럽트를 제공하는데 CPU가 소비한 시간의 비율을 나타낸 수치
  • st: steal time
  • 가상 머신(VM)을 실행 중일 경우 이 수치는 가상 머신을 위해 다른 task에서 사용된 CPU 사용량에 대한 시간의 비율을 나타낸 수치

리눅스에서 nice 및 renice 명령어는 실행 중인 프로세스의 우선 순위를 조정하는데 사용되며, 시스템 리소스가 다른 작업에 할당되는 방식을 제어할 수 있습니다.

프로세스 우선순위 지정(nice(or niceness) 및 renice)

1.4  메모리 정보

  • MiB Mem
  • 할당 된 메모리 영역
  • total
  • 미사용 메모리
  • free
  • 미사용 여유 메모리
  • used 
  • 사용 중인 메모리
  • buff/cache 
  • 버프와 캐시는 버퍼된 메모리와 캐시 메모리
  • buff는 buffers의 약자이며 커널 버퍼에서 사용되는 메모리
  • cache는 디스크의 페이지 캐시로써 읽은 데이터를 참조
  • MiB Swap
  • 디스크에서 할당된 Swap 메모리 영역
  • 메모리 사용량이 가득 찼을 때 사용
  • 디스크 영역에서 생성되어 RAM 영역에 비해 느린 속도를 가짐.
  • total
  • 미사용 Swap 메모리
  • free
  • 미사용 Swap 메모리
  • used 
  • nice 정책에 의해 사용하는 CPU 사용률
  • avail mem
  • 유휴 상태(available)의 메모리(스왑 메모리 아님)
버퍼와 캐시 차이 : 버퍼는 데이터를 일시적으로 저장하는 공간을 나타내며, 캐시는 데이터를 더 빠르게 제공하기 위한 용도입니다.

완충 장치라는 사전적인 의미를 가진 Buffer에서 알 수 있듯이 버퍼는 데이터를 일시적으로 저장하는 공간을 나타내며, 주로 입출력(I/O) 작업에서 사용되며, 데이터를 한 곳에서 다른 곳으로 전송하는 동안 임시로 데이터를 저장하는 데 활용됩니다. 버퍼는 데이터를 모아서 한 번에 전송함으로써 효율성을 높이는 역할을 하며, 메모리를 회수할 때에는 버퍼에 저장된 데이터가 전송이 완료 후 발생합니다.

캐시는 주로 CPU나 메모리와 같이 빠른 속도의 장치에서 느린 속도의 장치로부터 데이터를 더 빠르게 제공하기 위한 용도로 사용되며, 캐시는 주로 읽기 연산에 대한 성능 향상을 위해 사용됩니다. 이미 읽은 데이터를 캐시에 저장해두어 나중에 동일한 데이터를 요청할 때 더 빠르게 제공할 수 있도록 합니다. 캐시에 저장된 데이터는 언제든지 필요에 따라 재사용될 수 있습니다.

1.5  top 프로세스의 필드 항목

프로세스(process) ID는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말합니다.

프로세스를 실행시킨 사용자 ID 

프로세스의 우선순위(priority)

NI: nice 값. 일의 nice value값이다. 마이너스를 가지는 nice value는 우선순위가 높음.

  • 가상 메모리 크기(Virtual Memory Size), 키로바이트(Kib)
  • 가상 메모리의 사용량(SWAP+RES)
  • 상주 메모리 크기(Resident Memory Size) – 키로바이트(Kib)
  • 현재 프로세스가 사용하고 있는 물리 메모리 양

상주 메모리는 스왑을 제외한 VIRT의 하위 집합입니다.

  • 공유 메모리 크기 (Shared Memory Size), 키로바이트(KiB)
  • 다른 프로세스와 공유하고 있는 공유 메모리의 양

공유 메모리는 다른 프로세스에서 사용할 수 있는 RES(상주 메모리)의 하위 집합니다.

  • 프로세스 상태(Stat)
    • R(Runable): 실행 대기 상태
    • S(Sleeping): 수면 상태
    • D(in Disk wait) 입·출력을 기다리는 상태
    • T(sTopped): 멈춰 있거나 흔적이 남아 있는 상태
    • Z(Zombie): 좀비 프로세스
  • CPU 사용률
  • 메모리 사용률
    • 작업에 사용된 실제 메모리 양
  • 작업이 시작된 이후 사용한 총 CPU 시간을 의미
  • 명령어 이름 또는 명령어 라인
    • 명령어 또는 관련 프로그램의 이름이 표시됨.

Ⅲ. top 명령어 실행 후 옵션

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • 리눅스 who, w 명령어 & user 명령어

    리눅스 who 명령어는 현재 서버에 로그인한 사용자 리스트를 보여주는 명령어입니다. w 명령어는 현재 시스템에 로그인한 사용자와 사용자의 작업 내용을 보여주는 명령어로 각각의 차이가 있습니다. ✅ 리눅스 who 명령어 현재 접속 사용자(USER) 터미널 유형(TTY) 접속 시간 및 IP rocky pts/0, pts/1 .. 2070-02-09 10:15 (xxx.xx.xx8.254) ✅ 리눅스 w 명령어 w 명령어 확인 정보 설명…

  • [Linux] usermod 명령어

    usermod 명령어는 user modification(사용자 수정)의 약자로 이미 존재하는 사용자 계정의 속성을 변경할 때 사용됩니다. usermod는 사용자의 로그인 이름, UID (사용자 ID), 홈 디렉토리, 로그인 셸, 그룹 등의 속성을 변경할 수 있는 명령어입니다. ✅ usermod 명령어 기본 옵션 ✅ 주요 옵션 ✅ 사용 예시 🔲 사용자 홈 디렉토리 변경 사용자의 홈 디렉토리를 변경할 때 -m…

  • 리눅스 uptime 명령어(서버 가동 시간&1,5,15 평균 로드 확인)

    리눅스 uptime 명령어는 시스템의 평균 부하율과 서버의 가동 시간을 확인하는 명령어입니다. 서버의 부팅 시간을 알고 싶을 때, 최근 15분 동안의 평균 로드를 통해 부하율을 알고 싶을 때 사용하는 명령어임을 알 수 있습니다. ✅ 리눅스 uptime 명령어 기본 사용법과 설명 총 4개의 컬럼으로 나뉘는 것을 알 수 있습니다. ✅ 리눅스 uptime 옵션

  • Apache 시작, 중지, 재시작 명령어 | 서비스 상태 확인

    리눅스에서 Apache를 설치하고 레드헷 계열과 우분투에서의 시작, 중지, 재시작 명령어를 자주 사용하게 됩니다. Apache 시작, 중지, 재시작 등의 명령어는 다음과 같습니다. ✅ Apache 시작 및 중지, 재시작: Red Hat 계열 ✅ Apache 시작 및 중지, 재시작: Debian 계열 (Ubuntu, Debian 등) 우분투 시작, 재시작 등의 기본 명령어입니다. ✅ restart 및 graceful 차이 Apache…

  • [Shell 특수문자] 리눅스 와일드카드(메타문자)

    리눅스 와일드카드는 Shell 특수문자로 메타 문자로 불리기도 합니다. Shell 특수 기호 중 와일드카드(글로빙으로 부르기도 함)는 문자 패턴에 따라 파일명을 선택할 수 있습니다. 특수 문자에는 인용(따옴표) 기호, 리눅스 다중 명령어, 리눅스 히스토리 기호, 리눅스 디렉토리 기호, 리눅스 괄호 기호 및 입출력 리다이렉션 등 다양하게 있습니다. ✅ 리눅스 와일드카드 매칭 문자 리눅스 와일드카드 매칭 문자…

  • 리눅스: useradd 명령어 & passwd 명령어

    useradd 명령어는 리눅스에서 사용자의 ID(계정)를 생성하는 명령어입니다. root 권한으로 생성이 가능하며 기본적인 명령은 아래와 같습니다. 리눅스 useradd 명령어 옵션 리눅스 useradd 사용 예 기본으로 사용할 수 있는 예입니다. 리눅스 /etc/skel 디렉토리 계정 생성 시 설정 값이 정의되는 /etc/skel 데릭토리는 사용자를 생성 했을 때 해당 계정의 홈 디렉토리에 기본으로 들어가는 파일이 있습니다. /etc/skel 설정은…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 4   +   8   =