일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 무료 이미지 제공 사이트
- 메타버스 용어
- net user 사용법
- 엑셀에서 콤마를 제외한 숫자 개수 세기
- 오라클DB팁
- 레드햇 버전확인
- POP폰트
- 윈도우10 먹통현상 해결하기
- 업무에 바로 쓰는 SQL
- 롤오버 기간을 설정한 비밀번호 마이그레이션 방법
- 부자의 그릇 요약
- AIX NFS
- 오라클팁
- AIX NAS NFS
- 붙여넣기 단축키
- 바탕화면에 원격 데스크톱 연결 바로가기 만들기
- 잘라내기 단축키
- ie모드 해제
- 작업표시줄 먹통현상 해결하기
- OpenSSL 업데이트
- 금리와 물가와의 상관관계
- 삼성멀티캠퍼스SQL
- 윈도우 10 슬라이드 종료 단축키 만들기
- 복사 단축키
- javascript redirection code
- 한글 기호 자동변환 해제
- 윈도우 10 프리징 해결하기
- AIX 버전확인
- 스타워즈 영화 감상 순서
- 헤드퍼스트SQL
- Today
- Total
Today is Present.
06 시스템 실행상태 모니터링 실무 본문
# 시스템 부하율 점검하는 uptime 사용법
[root@localhost ~]# uptime
12:03:41 up 1:34, 2 users, load average: 0.00, 0.03, 0.05
해석 - 1:03:41 : 현재시각
해석 - up 1:34 : 부팅 후 1시간 34분 동안 운영중임
해석 - 2 users : 시스템에 로그인한 사용자수는 2명임(tty 포함)
해석 - load average : 0.00, 0.03, 0.05 : 각각 1분, 5분, 15분 동안 시스템 평균 부하율
# 메모리 상태를 종합 점검하는 free 개론
① 실제메미로(RAM)의 전체용량
② 실제 메모리 중 사용중인 메모리의 량
③ 실제 메모리 중 유휴메모리의 량
④ 커널에서 사용되는 공유메모리(shared memory) 와 버퍼(buffer)의 량
⑤ 캐시된 메모리의 량
⑥ 스왑(swap) 메모리의 량
free 옵션
-b : byte 단위로 보여준다.
-k : kilo byte 단위로 보여준다(default).
-m : mega byte 단위로 보여준다.
-t : 맨 마지막에 total 용량을 보여준다.
-o : buffer/cache 라인을 보여주지 않는다.
-s : 지정한 초단위로 refresh 하여 메모리상태를 표시해준다.
-V : free 명령어의 버전을 표시한다.
# 메모리상태를 종합 점검하는 free 실무 사용법
[root@localhost ~]# free -b
total used free shared buff/cache available
Mem: 1041264640 307113984 355426304 7303168 378724352 545890304
Swap: 2147479552 0 2147479552
[root@localhost ~]# free -k
total used free shared buff/cache available
Mem: 1016860 299896 347096 7132 369868 533116
Swap: 2097148 0 2097148
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 993 292 338 6 361 520
Swap: 2047 0 2047
[root@localhost ~]# free -t // 현재 시스템메모리 상황 출력후 total 결과 보임
total used free shared buff/cache available
Mem: 1016860 299944 347048 7132 369868 533068
Swap: 2097148 0 2097148
Total: 3114008 299944 2444196
# 5초 단위로 free의 결과를 갱신하여 화면에 보여준다.
[root@localhost ~]# free -s 5
total used free shared buff/cache available
Mem: 1016860 299964 347028 7132 369868 533052
Swap: 2097148 0 2097148
종료 : ^C
# 프로세스 실행우선순위 설정을 위한 nice 개론
리눅스 명령어를 실행시키면서 nice 라는 명령어를 이용하여 NICE 값을 지정할 수 있는 반면 이미 실행되어 있는 프로세스에 대하여 NICE 값을 변경할 수 있는 것은 renice이다.
리눅스에서 프로세스들이 가질 수 있는 NICE 값의 범위는 -20에서부터 19까지이다. 여기서 -20이 가장 우선되는 자원스케줄링을 하게 되고, 19는 가장 최악의 자원스케줄링을 하게된다. 여기서 스케줄링이란 CPU와 memory 등과 같은 시스템자원사용에 대한 할당량 스케줄링을 의미한다.
특정 NICE 값의 지정없이 일반적인 방법으로 실행된 프로세스들의 우선순위(priority)값은 모두 20(default) 이며 NICE 값은 0(default)이다. 우선 순위 값은 0(가장 높은 우선순위, 가장 빠르게 실행됨) 부터 39(가장 낮은 우선순위, 가장 느리게 실행됨)까지 가능하며 NICE값은 -20부터 19까지 가능하다.
결론적으로 우리는 NICE 값을 -20부터 19까지 조절하면서 각각의 프로세스의 우선순위값을 0부터 39까지 조절할 수 있다는 의미가 된다.
다음은 모든 프로세스에 존재하는 NICE 값과 nice 라는 명령어, 그리고 renice 라는 명령어에 대하여 정리한 것이다. 반드시 이해하자.
① 리눅스에서 실행된 모든 프로세스는 실행 우선순위를 가지고 있다.
② 또한 실행된 모든 프로세스의 기본 NICE값은 0이며, 우선순위는 20이다.
③ 특정 프로세스를 실행할 때에 NICE 값을 지정하여 실행하려면 nice 명령어를 이용한다.
④ 이미 실행중인 특정 프로세스의 NICE 값을 변경하는 명령어가 renice 이다.
⑤ renice 명령어로 변경 가능한 NICE 값의 범위는 -20부터 19까지이다.
[실습]
[root@localhost ~]# find / -name access_log
/var/log/cups/access_log
[root@localhost ~]# top
top - 13:19:22 up 2:49, 2 users, load average: 0.07, 0.03, 0.05
Tasks: 126 total, 2 running, 124 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016860 total, 65852 free, 333696 used, 617312 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 431064 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125960 6688 3908 S 0.0 0.7 0:02.31 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
위의 find 프로세스의 PR 값이 20이고, NI값은 0이다. PR값은 우선순위값을 의미하며, NI값은 NICE값을 각각 의미한다. 위의 예와 같이 가장 일반적인 방법으로 실행한 프로세스들의 우선순위는 20이고, NICE 값은 0이다. 이것이 모든 프로세스에게 해당되는 우선순위와 NICE의 기본값이다.
# 가장 높은 우선순위 또는 가장 낮은 우선순위로 프로세스 실행하기
NICE 값을 지정하지 않고 일반적인 방법으로 프로세스를 실행하면 NICE 값은 기본값으로 0이 된다.
[root@localhost ~]# nice -n -20 find / -name access_log
/var/log/cups/access_log
[root@localhost ~]#
NICE 값이 -20이면 우선순위는 0이 되어 가장 높은 우선순위를 지정하여 실행한 것이 된다. 결론적으로 자원사용량이 늘어나서 실행속도가 빨라진다.
가장 낮은 우선순위로 특정명령어를 실행하는 예를 보도록 하자. 이렇게 하기 위해서는 가장 낮은 NICE 값인 19를 지정하여 실행하면 된다.
[root@localhost ~]# nice -n 19 find / -name access_log
/var/log/cups/access_log
이 명령어의 find 프로세스는 PR 값이 39이며 NI 값은 19이다.
[정리하면..... ]
NICE 값이 -20이면 우선순위는 0이고,
NICE 값이 -19이면 우선순위는 1이고,
....
NICE 값이 0이면 우선순위는 20이며,
....
NICE 값이 18이면 우선순위는 38이며,
NICE 값이 19이면 우선순위는 39가 된다.
# 실행중인 프로세스의 우선순위를 변경할 수 있는 renice 의 기본사용
-g 옵션 : 해당 그룹명 소유로 된 프로세스
-u 옵션 : 지정한 사용자명의 소유로 된 프로세스
-p 옵션 : 해당 프로세스의 PID를 지정한다.
PID가 3000번인 프로세스의 NICE값을 9로 설정할 때
[root@localhost ~]# renice +9 -p 3000
PID 가 3999 이고 bible 사용자의 소유로 된 프로세스에 대해 NICE 값을 10으로 설정
[root@localhost ~]# renice +10 -u bible -p 3999
# 시스템의 전체상태를 실시간 파악하는 top 실무개론
[root@localhost ~]# top
top - 13:37:52 up 3:08, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 126 total, 2 running, 124 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016860 total, 69336 free, 334128 used, 613396 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 434104 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8897 root 20 0 0 0 0 S 0.3 0.0 0:03.50 kworker/0:3
13062 root 20 0 146124 1988 1400 R 0.3 0.2 0:00.01 top
단축키 : h - 도움말, i - idle/unidle process view,
top - 13:39:16 up 3:09, 2 users, load average: 0.00, 0.01, 0.05
[해설]
- top : top 유틸리티 이름
- 13:39:16 : 시스템의 현재시간
- up 3:09 : 시스템이 부팅된 후에 재부팅이나 종료없이 현재까지 운영된 시간
- 2 users : 현재 로그인된 사용자 수
- load average : 0.00, 0.01, 0.05 : 최근 1분, 5분, 15분 각각의 시스템 평균부하율
Tasks: 127 total, 2 running, 125 sleeping, 0 stopped, 0 zombie
[해설]
- Tasks : 127 total : 전체 실행된 프로세스 수
- 2 running : 현재 실행되고 있는 프로세스 수
- 125 sleeping : 유휴상태에 있는 프로세스 수
- 0 stopped : 종료된 프로세스 수
- 0 zombie : 좀비 프로세스 수
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
[해설]
- us : 사용자가 실행시킨 프로세스의 CPU 사용율(user mode)
- sy : 시스템자체에서 사용되는 CPU 사용율(system mode)
- ni : nice 정책에 의해 사용되고 있는 CPU 사용율(low priority user mode)
- id : 사용되지 않고 남은 CPU 사용율(idle task)
- wa : 입출력 대기상태의 CPU 사용율(I/O waiting)
- hi : IRQs 에 사용된 CPU(servicing IRQs)
- si : soft IRQs에 사용된 CPU(servicing soft IRQs)
- st : steal 값(다른 instances 실행에 주어진 time 값)
KiB Mem : 1016860 total, 68948 free, 334516 used, 613396 buff/cache
[해설]
- total : 실제 메모리의 전체용량
- free : 사용되지 않고 남아있는 메모리양
- used : 프로세스에 의해 사용되고 있는 메모리 사용량
- buff/cache : 버퍼링된 메모리양
KiB Swap: 2097148 total, 2097148 free, 0 used. 433716 avail Mem
[해설]
- total : 전체 스왑메모리양
- free : 남아 잇는 스왑메모리양
- used : 프로세스에 의해 사용된 스왑메모리양
- avail Mem : 캐싱 메모리양
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125960 6688 3908 S 0.0 0.7 0:02.42 systemd
[해설]
PR : 프로세스 우선순위
NI : 프로세스의 NICE 값, 마이너스값을 가질수록 높은 우선순위를 갖는다.
VIRT : 해당 프로세스가 사용한 가상메모리의 총량(Vritaul Image(kb), VIRT=SWAP+RES)
RES : 해당 프로세스의 물리적인 MEMORY 사용량(Resident size(kb), RES=CODE+DATA)
SHR : 해당 프로세스에 의해 사용된 공유메모리 총량(Shared Mem size(kb))
S 프로세스 상태
- D = 중단될 수 없는 sleep 상태의 프로세스
- R = 실행중인 프로세스(running)
- S = 휴먼상태의 프로세스(sleeping)
- T = Trace 되거나 스톱된 프로세스
- Z = 좀비프로세스(zombie)
# top 사용법
[root@localhost ~]# top -c // 프로세스들의 전체 경로까지 표시
[root@localhost ~]# top -d 2 // refresh 를 원하는 간격단위(초단위)로 실행
[root@localhost ~]# top -d 0.05
# CPU 사용률이 높은 순서대로 top 실행 후 SHIFT+P
# 실행시간이 오래된 순서대로 프로세스 정렬 top 실행 후 SHIFT+T
# top 실행화면에서 특정프로세스 죽이기 : top 실행후 k - PID to kill 번호 입력
# 유휴상태 프로세스 제외하고 실행중인 프로세스 확인하기 : top 실행후 i (toggle)
# top 실행화면에 프로세스들의 우선순위 변경 : top 실행후 r - PID to renice
# top 실행화면 컬럼 순위 바꾸기 : top 실행후 o (영문자 o)
'리눅스 학습' 카테고리의 다른 글
08 인터넷 수퍼데몬 XINETD와 자동실행 서비스관리 실무 (0) | 2020.11.30 |
---|---|
07 리눅스 로그시스템 이해와 활용 (0) | 2020.11.30 |
05 파일검색과 명령어검색 실무 (0) | 2020.11.30 |
04 파일과 디렉토리 관리실무 (0) | 2020.11.30 |
03 리눅스 시스템 날짜와 시간관리 실무 (0) | 2020.11.30 |