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

ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)

리눅스 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

  • [Linux] usermod 명령어

    usermod 명령어는 user modification(사용자 수정)의 약자로 이미 존재하는 사용자 계정의 속성을 변경할 때 사용됩니다. usermod는 사용자의 로그인 이름, UID (사용자 ID), 홈 디렉토리, 로그인 셸, 그룹 등의 속성을 변경할 수 있는 명령어입니다. 목차Ⅰ. 리눅스 top 명령어 기본 사용1. top 명령어 기본 옵션2. top 명령어 옵션 활용Ⅱ. top 명령어1. top 명령어 영역 설명Ⅲ. top 명령어…

  • yum 명령어 | 사용법 | 옵션 | yum-utils | 패키지 관리와 저장소 관리🔝

    레드햇 계열의 리눅스 배포판에서 사용하는 YUM 명령어는 패키지 관리(설치, 업데이트, 제거)를 하는데 사용하는 명령어입니다. yum은 기존 패키지 시스템인 RPM의 의존성 문제를 해결하기 위해 제공되는 도구이며, RPM에서 수행할 수 있는 많은 작업을 수행할 수 있습니다. 목차Ⅰ. 리눅스 top 명령어 기본 사용1. top 명령어 기본 옵션2. top 명령어 옵션 활용Ⅱ. top 명령어1. top 명령어 영역 설명Ⅲ….

  • 리눅스 cat 명령어

    리눅스에서 텍스트 파일을 출력하는 간단한 ‘cat 명령어’는 명령어 뒤에 파일명을 적어 표준 출력(Standard Output)을 할 수 있습니다. cat은 “연결시키다”, “연관시키다” 등의 뜻을 가지고 있는 영어단어 “concatenate”에서 유래되었습니다. 목차Ⅰ. 리눅스 top 명령어 기본 사용1. top 명령어 기본 옵션2. top 명령어 옵션 활용Ⅱ. top 명령어1. top 명령어 영역 설명Ⅲ. top 명령어 실행 후 옵션1. cat…

  • Rsync 명령어: 옵션 | 사용 예시

    Rsync 명령어는 Remote sync의 줄임말로 원격에서 로컬, 로컬에서 로컬로의 파일 및 디렉토리를 복사하는 프로그램입니다. rsync에는 두 가지 접속 방법이 있는데 SSH를 통해 접속하는 방법과 rsync 데몬을 통해 접속하는 방법입니다. 목차Ⅰ. 리눅스 top 명령어 기본 사용1. top 명령어 기본 옵션2. top 명령어 옵션 활용Ⅱ. top 명령어1. top 명령어 영역 설명Ⅲ. top 명령어 실행 후…

  • 리눅스 리다이렉션(Redirection)

    웹 상에서 리다이렉션(Redirection)은 웹 브라우저가 특정 URL을 요청했을 때, 미리 지정된 다른 URL로 재요청하게 하는 것을 말합니다. 재 연결의 사전적인 의미를 가진 Redirection은 리눅스에서 입력과 출력을 다루는 방식으로, 데이터를 파일로 보내거나 파일에서 읽어오는 작업을 수행할 수 있게 해줍니다. 리눅스 리다이렉션은은 키보드로 입력, 화면으로 출력을 하는 것이 아니라 파일로 출력하는 것을 의미합니다. 리다이렉션에는 표준…

  • [Linux] lsof 명령어: 실행 중 파일 정보 출력

    lsof 명령어는 lisf open files의 약자로 리눅스 시스템에서 열려 있는 파일의 정보를 출력해 주는 명령어입니다. lsof 명령어는 파일을 포함하여 디렉터리, 네트워크 소켓, 파이프 등 프로세스가 사용 중인 다양한 리소스도 조회할 수 있습니다. 목차Ⅰ. 리눅스 top 명령어 기본 사용1. top 명령어 기본 옵션2. top 명령어 옵션 활용Ⅱ. top 명령어1. top 명령어 영역 설명Ⅲ. top…

답글 남기기

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

Prove your humanity: 0   +   3   =