카이도스의 Tech Blog

top 본문

지식

top

카이도스 2022. 8. 4. 11:13
728x90
반응형
top 명령어 정리
 
top - 21:43:31 up 28 days,  4:16,  1 user,  load average: 0.09, 0.04, 0.01
 
21:43:31 현재시간 ,
updtime (서버 uptime 28일), 
현재 로그인 유저수 (1 user), 
로드 에버리지 1분, 5분, 15분 값
 
load average : - 작업의 대기시간, 값이 1이라면 1분동안 평균 1개의 프로세스가 대기상태임을 나타냄
                      보통 5이면 서버가 부하 받는정도, 10~15면 과부하
 
Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
Tasks 전체 프로세스 수, 
1 running 현재 실행중인 프로세스 수, 
101 sleeping유휴 상태 프로세스 (101개) 
0 stopped정지상태 프로세스, 
0 zombie좀비 프로세스
 
 (좀비 프로세스 : 대부분의 프로세스는 부모프로세스가 종료되면 자식프로세스는 자동종료 된다.
부모프로세스가 종료되었음에도 자식프로세스가 아직 남아 있는 상태의 프로세스를 좀비프로세스라고 한다. 
이런 좀비프로세스가 많아지면 시스템이 느려지는 원인이 될 수도 있다. 대부분의 좀비프로세스는
 init프로세스에 의해 관리가 된다. 그리고 계속 살아있는 좀비프로세스가 있다면 kill명령으로 강제종료시켜도 무방하다.
하지만, 시스템을 재부팅하면 이런 좀비프로세스는 자동제거된다)
 
 
Cpu(s):  2.0%us,  1.3%sy,  0.0%ni, 96.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.7%st
2.0%us - 사용자가 실행시킨 프로세스의 CPU 사용율(user mode)
1.3%sy - 시스템자체에서 사용하는 CPU사용율(system mode)
0.0%ni - nice정책에 의해 사용되고 있는 CPU사용율(low priority user mode)
96.0%id - 사용되지 않고 남은 CPU사용율(idle task)
0.0%wa - 입출력 대기상태의 CPU사용율(I/O waiting)
0.0%hi -IRQs에 사용된 CPU(servicing IRQs)
0.0%si - soft IRQs에 사용된 CPU(servicing soft IRQs)
0.7%st - steal 값(다른 instances 실행에 주어진 time 값)
 
**인터럽트 요청 (IRQ)은 하드웨어 레벨에서 전송되는 서비스에 대한 요청
 
 
** nice 정책 : 
  • niceness(CPU 스케줄링 우선순위)를 지정하는 리눅스 명령어
  • nipce 커널 호출에 매핑
  • 커널 스케줄러 내에 해당 프로세스의 우선순위를 지정
[root@test2 ~]# cat /etc/security/limits.conf | grep nice
#        - nice - max nice priority allowed to raise to values: [-20, 19]
 
  • 기본 nice 값은 부모 프로세스의 것을 따르며, 보통 0
[root@test2 ~]# nice
0
[root@test2 ~]# ps -o pid,nice,cmd 1
  PID  NI CMD
    1   0 /sbin/init
→ init 프로세스도 niceness가 0임
 
 
Mem:   1015992k total,   987456k used,    28536k free,   192164k buffers
 
1015992k total, - 실제 메모리 전체 용량,
987456k used - 프로세스에 의해 사용되고 있는 메모리 사용량,
28536k free - 사용되지 않고 남아있는 메모리양,
192164k buffers - 버퍼링된 메모리양
 
Swap:  4194300k total,   777568k used,  3416732k free,   597588k cached
 
4194300k total - 전체 스왑메모리양,
 777568k used - 프로세스에 의해 사용된 스왑 메모리양,  
3416732k free - 남아있는 스왑 메모리양,   
597588k cached - 캐싱 메모리양
 
스왑메모리 사용이 많을시 실제 메모리가 부족하다는뜻
 
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 
PID - 해당 프로세스의 유일한 프로세스번호(Process ID, 키값 : A)
 
USER - 프로세스를 실행시킨 사용자(User Name, 키값 : E)
 
PR - 프로세스의 우선순위(Priority, 키값 : H)
 
NI - 프로세의 NICE값(Nice Value, 키값 : I), Minus(-)을 가질수록 높은 우선순위를 갖고,  Plus(+)을 가질수록 낮은 우선순위를 갖는다, 0값은 우선순위가 적용되지 않음을 의미
 
VIRT - 해당 프로세스가 사용한 가상메모리의 총량(Virtual Image(kb), 키값 : o)
 
RES - 해당프로세스의 물리적인 메모리 사용량(Resident Size(kb), 키값 :q)
 
RES = CODE + DATA
 
SHR - 해당 프로세스에 의해 사용된 공유메모리의 총량(Shared Mem Size(kb), 키값 : t)
 
S - 해당 프로세스의 상태(Process Status , 키값 : w)를 나타내며 다음 중 하나의 값을 가진다
* D = 중단될 수 없는 Sleep 상태의 프로세스(uninterruptible sleep)
* R = 실행중인 프로세스(running)
* S = 휴먼상태의 프로세스(sleeping)
* T = Trace되거나 스톱된 프로세스
* Z = 좀비프로세스(zombie)
 
목적에 맞게 프로세스 정렬
CPU 사용량이 가장 많은 프로세스 순서대로 정렬
-> SHIFT + P
Memory 사용량이 가장 많은 프로세스 순서대로 정렬
-> SHIFT + M  
실행시간이 오래된 프로세스 순서대로 정렬
-> SHIFT + T
 
top 실행중 특정 프로세스 죽이기
k를 누르면 (PID to kill : )이 나온다, 여기에 Kill할 PID를 입력
 
top 실행중 프로세들의 우선순위 변경하기
-> 리눅스에서 프로세스들의 가질 수 있는 NICE값의 범위는 -20(가장 높은 우선순위) ~ 19(가장 낮은 우선 순위)
r을 누르면 (PID to renice : )이 나온다 , 여기에 우선순위를 변경할 프로세스의 PID를 넣으면 
(Renice PID xxxx to value : )가 나오고 이번에 NICE 값을 넣으면 된다
 
출력된 필드 위치 바꾸기
top 실행화면에서 o를 입력하면 위와 같은 화면이 나온다
맨 위에 Current Fields: 에 있는 순서가 출력될 때의 필드순서이다
문자 한개가 필드 한개 이고 영문자에 대응하는 필드 내용은 아래에 전부 나열되어 있다  
각 문자의 대문자를 누르면 순서가 왼쪽으로 이동하고
각 문자의 소문자를 누르면 순서가 오른쪽으로 이동한다 
 
출력될 필드 바꾸기
 
top 실행화면에서 f를 입력하면 위와 같은 화면이 나온다 
*문자가 체크되어있는 것들이 필드로 출력된다 
맨 앞에 영문자들을 누르면 선택,제거 가 된다 원하는 필드의 영문자를 체크하여 top실행화면에 출력시키면 된다 
 
 
설정파일은 이용한 top 실행환경 설정 
top을 종료하고 나중에 다시 top을 실행하면 사용자 변경화면 대로 보이는 것이 아니라 기본화면 포맷으로 top이 실행된다.
top실행 상태의 화면에서 "SHIFT + W"키를 입력하면
"Wrote configuration to '/root/.toprc'" 라는 메시지를 출력하고 /root/.toprc라는 파일에 현재상태의 top설정내용을 저장한다
그리고 다음부터 top을 실행하면 이 설정이 그래도 적용된 top화면을 계속해서 사용할 수 있다
 

 

728x90
반응형

'지식' 카테고리의 다른 글

logrotate  (0) 2022.08.04
도메인 상태코드  (0) 2022.08.04
메일 리턴 코드 모음  (0) 2022.08.04
raid 생성  (0) 2022.08.04
raid의 패리티 정리  (0) 2022.08.04
Comments