리눅스 top 명령어(CPU, 메모리 점유율 확인)
ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)리눅스 top 명령어는 구동 중인 OS의 상태를 보여주는 명령어이며 table of processes의 뜻을 가지고 있습니다. 총 메모리 사용량, CPU 사용량 등을 보여주며 각 프로세스의 구체적인 메모리와 CPU 사용량을 개별적으로 확인할 수 있습니다.
Ⅰ. 리눅스 top 명령어 기본 사용
top 명령어는 대부분 옵션 없이 사용하지만 일반적인 명령어와 동일하게 기본 사용은 옵션과 명령 인자로 이루어져 있습니다.
top -[옵션] [명령 인자]1. top 명령어 기본 옵션
2. top 명령어 옵션 활용
 top -b -n7 top -b -n7 > top_output 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 명령어에서 나오는 옵션과 동일한 정보를 확인할 수 있습니다.
top - 14:08:25 up 38 days, 8:02,  1 user,  load average: 1.70, 1.77, 1.68                               1.2 tasks 영역
tasks 영역에서는 전체 기동 중인 total, running, sleeping, stopped, zombie 5가지의 프로세스 상태를 확인할 수 있습니다. 프로세스는 I/O 기반의 업무를 수행하며, 업무 수행 중에 CPU는 idle 타임(유휴 시간)에 들어갑니다.
1.3 Cpu(s): CPU 정보 확인
Cpu(s) 라인은 CPU가 현재 하고 있는 일에 대한 정보를 제공합니다. 3번째 라인에서 top 명령어로 cpu 사용률 확인하기를 할 수 있습니다.
리눅스에서 nice 및 renice 명령어는 실행 중인 프로세스의 우선 순위를 조정하는데 사용되며, 시스템 리소스가 다른 작업에 할당되는 방식을 제어할 수 있습니다.
프로세스 우선순위 지정(nice(or niceness) 및 renice)
1.4 메모리 정보
버퍼와 캐시 차이 : 버퍼는 데이터를 일시적으로 저장하는 공간을 나타내며, 캐시는 데이터를 더 빠르게 제공하기 위한 용도입니다.
완충 장치라는 사전적인 의미를 가진 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 시간을 의미
 
- 명령어 이름 또는 명령어 라인
- 명령어 또는 관련 프로그램의 이름이 표시됨.