메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Nmon: 두 판 사이의 차이

데브카페
편집 요약 없음
편집 요약 없음
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
35번째 줄: 35번째 줄:
* 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여  저장한 nmon 데이터를 넣어 주면 된다.
* 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여  저장한 nmon 데이터를 넣어 주면 된다.


== nmon 항목 설명 ==


1. CPU
== nmon 모니터링 도구 설명 ==
=== 기본 사용법 ===
* '''실행''': 터미널에서 <code>nmon</code> 입력
* '''항목 전환''': 단축키(예: <code>c</code>=CPU, <code>m</code>=메모리)
* '''종료''': <code>q</code> 키


. %sys + %user 가 80% 이상이면 병목으로 판단
=== 주요 항목 설명 ===
  - sys : kernel 부분이 수행되는 영역, 프로세스 스케줄링, I/O, drive, network과 관련
==== CPU 사용률 (<code>c</code> 키) ====
  - wait : 디스크 I/O 작업이 끝날 때가지 기다리는 idle time
{| class="wikitable"
  - user : 사용자 프로세스, application, database등
! 항목 !! 설명 !! 주의사항
  - idle
|-
| '''User%''' || 사용자 프로그램(웹 브라우저 등)이 사용한 CPU 비율 || 70% 이상 지속 시 애플리케이션 최적화 필요
|-
| '''Sys%''' || 운영체제가 사용한 CPU 비율 || 갑자기 증가하면 커널 문제 가능성
|-
| '''Wait%''' || 디스크 I/O 대기 시간 || 20% 이상이면 디스크 병목 의심
|-
| '''Idle%''' || 유휴 상태 CPU 비율 || 10% 미만이면 시스템 과부하
|}


==== 메모리 (<code>m</code> 키) ====
 
{| class="wikitable"
. 모니터링 명령어
! 항목 !! 설명 !! 일반적인 상태
  # sar 1 5    : 1초 5회 평균 CPU 사용율
|-
  # sar -P ALL 1 5    : 각 Processor 별 사용율
| '''Used''' || 실제 사용 중인 메모리 (애플리케이션 + 캐시) || 전체 RAM의 70~80% 이하 권장
  # sar -q 1 5    : 시스템에서 사용한 평균 queue 및 process 표시
|-
    - runq-sz : 수행되고 있는 kernel thread의 평균 수
| '''Free''' || 즉시 사용 가능한 여유 메모리 || 0에 가까우면 위험
    - %runocc : queue 가 실행된 시간의 백분율
|-
    - swpq-sz : wait 상태인 kernel thread의 평균 수
| '''Cached''' || 재사용 가능한 캐시 메모리 || Linux가 자동 관리하므로 걱정 X
    - swpocc : swap 상태인 시간의 백분율
|}
  # vmstat 1 5    : cpu 및 memory 사용율
    - r : 수행중인 kernel thread 수
    - b : swap에 대기중인 kernel thread 수
  # ps aux
    - %CPU : 프로세스가 수행된 후 사용한 CPU 시간을 전체 경과시간으로 나눈 백분율
    - %MEM : 프로세스가 수행될 때 사용한 실 메모리 백분율
    - SZ : 프로세스의 data 영역을 위해 할당된 virtual page size로 1Kbyte 단위
    - RSS : 프로세스의 실 메모리 크기 1Kbyte 단위
 
 
 
2. Memory
 
. paging space In/Out이 10 이상이거나 page fault가 1000번 이상 발행하면 병목으로 판단
. memory 부족인지 user application이나 file cache에 의한 것인지 고려
  - free : file cache나 프로세스가 사용하고 있지 않는 영역
  - fie cache : 사용 가능한 메모리를 파일 작업시 I/O 성능 향상을 위해 cache로 사용
  - paging(4KB) : 실 메모리가 부족한 경우 발생, 실 메모리에서 사용되지 않았던 영역을 디스크로 옮기고
                  그 부분을 free 영역으로 전환하여 process를 처리
  - page fault : kernel이 필요한 data나 process의 페이지를 실 메모리에서 찾지 못하는 횟수
  - page In : 필요한 page만큼 virtual memory manager(VMM)에 의해 paging space에서 read하는 초당 횟수
              page out 값에 따라 발생하는 real I/O 값
  - page Out : 실 메모리 free 영역 확보를 위해 VMM이 paging space에서 read out하는 초당 회수
              page in 값에 따라 발생하는 real I/O 값
  - page space In : paging 영역에서만 발생하는 page read
  - page space out : paging 영역에서만 발생하는 page out
 
 
. 모니터링 명령어
  # vmstat 1 5
    - avm : 프로세스가 수행되는 동안 paging 공간에 할당된 active virtual page
    - fre : VMM이 필요시 사용할 수 있는 memory free list
    - re : page input/output list
    - pi : paging space에서 read in 된 page
    - po : paging space에서 read out 된 page
    - fr : paged freed(page replacement)
    - sr : page-replacement 알고리즘에 따라 page 찾기
    - cy : page-replacement 알고리즘에 따른 clock cycle
  # svmon -G
    - memory : 실 메모리 사용 통계
      . size
      . inuse : 프로세스나 file cache로 사용되는 메모리
      . free
      . pin : pinned 영역에서 사용되는 메모리
      . virtual : virtual 영역에 할당된 메모리
    - pg sapce : paging 영역의 사용 통계
      . size
      . inuse
    - pin : pinned 영역의 사용 통계
      . work : working(프로세스) 메모리 중 pinned 영역에서 사용되는 메모리
      . pers : persistent(file cache) 메모리 중 pinned 영역에서 사용되는 메모리
      . clnt : client(NFS, cd) 메모리 중 pinned 영역에서 사용되는 메모리
    - in use : 실 메모리 사용 통계
      . work
      . pers
      . clnt
 
 
 
3. DISK I/O
 
. %iowait가 40% 이상이거나 사용자 application에 의해 특정 disk의 %tm_act가 70%를 초과하는 경우 병목으로 판단
  - read : 초당 read 하는 데이터 크기 1Kbyte 단위
  - write
  - busy% : 디스크에 작업한 시간을 경과 시간으로 나눈 백분율
 
. 모니터링 명령어
  # iostat
    - %tm_act : 물리적 디스크에서 작업한 시간의 백분율
                일반적으로 40%를 초과하게 되면 I/O를 완료하는 시간이 길어져 응답시간이 증가
    - Kbps : 초당 디스크에 이동된 데이터 양 Kbype 단위
    - tps : 초당 디바이스 드라이브 단계에서 해당 물리적 디스크로 I/O를 요청하는 횟수
    - Kb_read : 물리적 디스크에 read한 양 Kbyte 단위
    - Kb_wrtn : 물리적 디스크에 write한 양 Kbypte 단위
 
 


4. Network Traffic
==== 디스크 I/O (<code>d</code> 키) ====
* '''Read''' (KB/s): 디스크에서 읽은 데이터 속도
* '''Write''' (KB/s): 디스크에 쓴 데이터 속도 
  → 갑작스러운 증가 시 저장장치 성능 확인 필요


   
==== 네트워크 (<code>n</code> 키) ====
* '''Recv''' (KB/s): 수신 트래픽  
  (예: 웹 서버 요청)
* '''Trans''' (KB/s): 송신 트래픽 
  (예: 동영상 스트리밍)


. network bandwidth의 30% 이상을 사용하는 경우 병목으로 판단
=== 초보자 팁 ===
   - read
* '''CPU'''와 '''메모리'''는 항상 함께 확인하세요.
   - write
  예: CPU는 정상인데 메모리 사용량 90% → "메모리 부족" 경고.
* '''Wait%''' 높을 때 해결법: 
   # SSD 업그레이드 
   # 동시 I/O 작업 줄이기
* 디스크/네트워크는 <code>-</code> 또는 <code>+</code> 키로 상세 전환 가능.


   
=== 샘플 화면 해석 ===
<pre>
CPU User%=60% Sys%=15% Wait%=5% → "애플리케이션 부하 중"
RAM Used=8GB/16GB Cached=3GB    → "안정적 상태"
</pre>


. 모니터링 명령어
참고: [[Linux 시스템 모니터링]] | [[성능 최적화]]
  # netstat -m
  # netstat -v
  # netstat -ni




   
   
5. topas 명령어를 이용한 모니터링
1) CPU
. Kernel : CPU의 현재 사용량, 70이 넘어가면 점검 필요
. User : 각 프로세스들이 사용하는 CPU 사용량
. Wait : 처리 대기중인 프로세스의 양(10미만)
. Idle :
2) Memory
. Real,MB : 메모리의 실제 크기(MByte)
. %Comp : 현재 메모리 사용율이며, 높을수록 좋다
. %Noncomp : file cache로 할당된 영역
. %Client : aix의 file system을 위한 영역
3) Paging Space
. Size,MB : Paging Memory로 할당된 크기
. %Used : 사용중인 양, 낮을수록 좋다
. %Free
6. nmon을 이용한 모니터링
nmon을 실행한 다음에 cmd라고 치면 cpu memory disk 정보가 나온다.
#./nmon
cmd
[[category:unix]]
[[category:nmon]]
[[category:nmon]]

2025년 5월 26일 (월) 13:49 기준 최신판

NMON

NMON 개요

  1. Nigel's Monitor
  2. AIX /Linux 성능 분석용 모니터링 툴

설치

  1. 우분투 리눅스
    apt-get install nmon
  2. 실행
    nmon
  3. 종료
    Q 또는  Ctrl + C

분석 방법

  1. nmon 로그 기록
-f: 파일로 기록
-s 초 : 몇초 단위로 데이터 캡쳐 할것인지
-c 숫자: 명령으로 작성해야하는 캡쳐 갯수 지정 (기본 : 10000000)
-m 디렉토리 : 저장할 경로


  • 예시) 10초 간격으로 20번 수집해서 /home/dbcafe 에 저장 하기
mkdir /home/dbcafe
nmon -f -s 10 -c 20 -m /home/dbcafe

분석 리포트

nmon Analyzer 에서 최신 파일(엑셀) 다운로드

  • 엑셀 파일을 열면 [Analyzer nmon data] 버튼을 클릭하여 저장한 nmon 데이터를 넣어 주면 된다.


nmon 모니터링 도구 설명

기본 사용법

  • 실행: 터미널에서 nmon 입력
  • 항목 전환: 단축키(예: c=CPU, m=메모리)
  • 종료: q

주요 항목 설명

CPU 사용률 (c 키)

항목 설명 주의사항
User% 사용자 프로그램(웹 브라우저 등)이 사용한 CPU 비율 70% 이상 지속 시 애플리케이션 최적화 필요
Sys% 운영체제가 사용한 CPU 비율 갑자기 증가하면 커널 문제 가능성
Wait% 디스크 I/O 대기 시간 20% 이상이면 디스크 병목 의심
Idle% 유휴 상태 CPU 비율 10% 미만이면 시스템 과부하

메모리 (m 키)

항목 설명 일반적인 상태
Used 실제 사용 중인 메모리 (애플리케이션 + 캐시) 전체 RAM의 70~80% 이하 권장
Free 즉시 사용 가능한 여유 메모리 0에 가까우면 위험
Cached 재사용 가능한 캐시 메모리 Linux가 자동 관리하므로 걱정 X

디스크 I/O (d 키)

  • Read (KB/s): 디스크에서 읽은 데이터 속도
  • Write (KB/s): 디스크에 쓴 데이터 속도
 → 갑작스러운 증가 시 저장장치 성능 확인 필요

네트워크 (n 키)

  • Recv (KB/s): 수신 트래픽
 (예: 웹 서버 요청)
  • Trans (KB/s): 송신 트래픽
 (예: 동영상 스트리밍)

초보자 팁

  • CPU메모리는 항상 함께 확인하세요.
 예: CPU는 정상인데 메모리 사용량 90% → "메모리 부족" 경고.
  • Wait% 높을 때 해결법:
 # SSD 업그레이드  
 # 동시 I/O 작업 줄이기
  • 디스크/네트워크는 - 또는 + 키로 상세 전환 가능.

샘플 화면 해석

CPU User%=60% Sys%=15% Wait%=5%  → "애플리케이션 부하 중"
RAM Used=8GB/16GB Cached=3GB     → "안정적 상태"

참고: Linux 시스템 모니터링 | 성능 최적화

Comments