RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'SAR'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. 프로세스 관련 고급 명령어
(1) pidof
   1) 설명: 실행중인 특정 프로그램의 프로세스 ID를 출력해준다.
   2) 사용법
     pidof 프로그램명
   3) 사용예
     [root@www root]# pidof httpd
     1494 1491 1318 1315 1047 1046 1045 1044 1043 1026
      => httpd 프로세스의 PID를 나열해 준다.
(2) vmstat
   1) 설명: 프로세스, 메모리, 페이징 ,블럭장치의 I/O, CPU의 활동상태등을 보여주는 명령이다.
   2) 사용법
     vmstat [options]
   3) options
     -n : delay시간 및 count를 지정할 수 있다.
     -V : 버전을 보여준다.
   4) 사용예
    ㄱ. [root@www root]# vmstat
           procs                      memory    swap          io     system         cpu
         r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
         0  0  0  27168  90772  16940 374468   0   2   520    40  562    81   3   1  96
          => (설명)
            a. procs
              - r : 실행시간을 위해 기다리고 있는 프로세스의 수
              - b : 계속 잠들어 있는 프로세스의 수
              - w : swapped out 되었거나 실행가능한 프로세스의 수
            b. memory
              - swpd : 가상메모리로 사용되고 있는 양(KB)
              - free : 쉬고 있는 메모리의 양(KB)
              - buff : buffer에서 사용하고 있는 메모리양(KB)
              - cache : cache로 사용하고 있는 메모리양(KB)
            c. swap
              - si : 디스크에 swapped in된 양(KB)
              - so : 디스크에서 swapped out된 양(KB)
            d. io
              - bi : 블록 디바이스에 보낸 블록수 (blocks/s)
              - bo : 블록 디바이스로 부터 받은 블록수 (blocks/s)
            e. system
              - in : 초당 발생한 interrupts의 수
              - cs : 초당 발생한 context switches(문맥 교환)의 수
            f. cpu : us, sy, id를 총 100 퍼센트로 보고 각각의 퍼센트로 보여준다.
              - us : 사용자에 의해 사용된 시간
              - sy : 시스템에 의해 사용된 시간
              - id : idle 시간
    ㄴ. [root@www root]# vmstat -n 3 10
          => 3초 간격으로 10개의 결과를 출력한다.
(3) uptime
   1) 설명: 현재 로그인한 후의 총 시간과 시스템 사용 현황을 보여준다.
   2) 사용법
     uptime
   3) 사용예
     [root@www root]# uptime
     12:10am  up  4:16,  2 users,  load average: 0.16, 0.08, 0.02
      => 현재시간, 로그인된 시간, 사용자수, load average를 보여준다. load average는 지난 1분,
        5분, 15분에 대한 평균이다.
(4) iostat
   1) 설명: CPU의 상태와 I/O 장치의 상태를 보여주는 명령이다.
   2) 사용법
     iostat [option]
   3) option
      간격 개수: 앞의 간격(초단위)로 개수만큼 화면에 보여준다.
      -k : kilobytes단위로 보여준다.
      -c : CPU상태만 보여준다.
      -d : 디바이스상태만 보여준다.
      -x : 파티션 단위로 상태를 보여준다.
   4) 사용예
    ㄱ. [root@www root]# iostat
        Linux 2.4.18-14 (www)   2003년 02월 02일

        avg-cpu:  %user   %nice    %sys   %idle
                   0.41    0.00    0.15   99.43

        Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
        dev3-0            2.42        48.32        23.84   21530882   10620936
         => (설명)
           1. avg-cpu: CPU의 상태를 나타낸다.
             1) %user : 사용자레벨에서 사용한 양을 퍼센트단위로 보여준다.
             2) %nice : 사용자레벨에서 nice 순위와 관련하여 사용한 양을 퍼센트단위로 보여준다.
             3) %sys : 시스템레벨(커널)에서 사용한 양을 퍼센트단위로 보여준다.
             4) %idle : CPU가 대기한 상태를 퍼센트로 보여준다.
           2. Device: 입출력장치의 상태를 나타낸다.
             1) %tps : 디바이스에서 초당 전송하는 갯수를 나타낸다.
             2) Blk_read/s : 초당 읽어들이는 블록의 갯수이다.
             3) Blk_wrtn/s : 초당 쓰여지는 블록의 갯수이다.
             4) Blk_read : 블록이 읽혀진 총 갯수이다.
             5) Blk_wrtn : 블록이 쓰여진 총 갯수이다.
    ㄴ. [root@www root]# iostat 1 5
         => 1초 간격으로 5번 화면에 보여준다.
    ㄷ. [root@www root]# iostat -k
         => kilobytes단위로 보여준다.
   5) 참고
     시스템 상태를 보여주는 명령인 iostat와 sar는 sysstat라는 패키지에 의해 설치된다. 두 명령
    의 결과값 형태가 유사하다.
(5) sar
   1) 설명: 시스템의 활동에 관한 정보를 수집하고 보여주고 저장하는 명령이다. 이 명령은 OS에서
           일어나는 활동상태를 누적시켜 표준출력으로 기록한다.
   2) 사용법
     sar [option] 간격 횟수
   3) option
     -o 파일명: 출력값을 주어진 파일명으로 binary로 저장한다.
     -f 파일명: binary로 저장된 값을 불러온다.
     -A : 모든 정보를 출력한다.
     -b : I/O관련 전송율 상태 정보를 출력한다.
     -B : 페이징 통계 정보를 출력한다.
     -c : 새롭게 생성되어 활동하는 프로세스의 정보를 보여준다.
     -e hh:mm:dd : -f 또는 -o 옵션과 같이 사용되는 옵션으로 리포트의 종료시간을 지정한다.
     -n DEV | EDEV | SOCK | FULL : 네트워크 상태정보를 보여준다.
     -r : 메모리와 스왑 공간의 상태를 보여준다.
     -s hh:mm:dd : -f과 같이 사용되는 옵션으로 불러온 파일의 시간을 지정한다.
     -u : cpu의 정보를 보여준다.
     -v : 커널 테이블과 파일에서의 inode상태를 보여준다.
     -w : 시스템의 switching 활동 상태를 보여준다.
     -W : 시스템의 swapping 상태를 보여준다.
   4) 사용예
    ㄱ. [root@www root]# sar
         => CPU의 최근 상태를 보여준다.
    ㄴ. [root@www root]# sar 0
         => 시스템이 시작 된 후 평균 상태를 보여준다.
    ㄷ. [root@www root]# sar 1 5
         => 1초간격으로 5회 보여준다.
    ㄹ. [root@www root]# sar 1 10 -o system
         => 1초간격으로 10회동안의 출력을 system파일로 저장한다.
    ㅁ. [root@www root]# sar -f system
         => system이라는 파일에 저장된 값을 화면에 보여준다.
    ㅂ. [root@www root]# sar -b
         => I/O 전송율관련 정보를 보여준다.
           (설명) 출력정보
                 tps : 물리적디스크에서 초당 전송하는 갯수
                 rtps : 물리적 디스크에서 요청한 초당 읽기 횟수
                 wtps : 물리적 디스크에서 요청한 초당 쓰기 횟수
                 bread/s : 블록에서 초당 읽은 데이타의 총 횟수
                 bwrtn/s : 블록에서 초당 쓰여진 데이타의 총 횟수
    ㅅ. [root@www root]# sar -c
         => proc/s 라는 단위로 초당 활동하는 프로세스의 수를 보여준다.
    ㅇ. [root@www root]# sar -e 12:00:00 -f
         => 오늘 기록된 파일(예 /var/log/sa/sa01)에서 12시까지의 기록만을 보여준다.
    ㅈ. [root@www root]# sar -n FULL
         => 네트워크의 모든 상태정보를 보여준다.
           1. DEV : 네트워크 장치로부터의 결과를 보여준다.
             1) IFACE : 네트워크 인터페이스의 이름
             2) rxpck/s : 초당 받은 패킷수
             3) txpck/s : 초당 전송한 패킷수
             4) rxbyt/s : 초당 받은 바이트수
             5) txbyt/s : 초당 전송한 바이트수
             6) rxcmp/s : 초당 압축한 패킷을 받은 수
             7) txcmp/s : 초당 압축한 패킷을 전송한 수
             8) rxmcst/s : 초당 받은 멀티캐스트 패킷 수
           2. EDEV : 네트워크 장치로부터 에러이거나 실패한 상태정보를 보여준다.
             1) IFACE : 네트워크 인터페이스의 이름
             2) rxerr/s : 초당 받은 불량 패킷의 수
             3) txerr/s : 전송중에 초당 발생한 에러 패킷의 수
             4) coll/s : 전송중에 초당 발생한 충돌 패킷의 수
             5) rxdrop/s : 리눅스 버퍼 공간의 부족으로 패킷을 받는 도중에 초당 drop된 패킷 수
             6) txdrop/s : 리눅스 버퍼 공간의 부족으로 패킷을 전송중에 초당 drop된 패킷의 수
             7) txcarr/s : 전송중에 초당 발생한 carrier-error수
             8) rxfram/s : 패킷을 받는중에 발생한 초당 frame alignment 수
             9) rxfifo/s : 패킷을 받는 중에 발생한 초당 FIFO overrun 수
            10) txfifo/s : 패킷을 전송중에 발생한 초당 FIFO overrun 수
          3. SOCK : 소켓 상태에 대한 정보를 보여준다.
            1) totsck : 사용된 총 소켓수
            2) tcpsck : 현재 사용중인 TCP 소켓수
            3) udpsck : 현재 사용중인  UDP 소켓수
            4) rawsck : 현재 사용중인 RAW 소켓수
            5) ip-frag :현재 사용중인 IP fragments 수
          4. FULL : 모든 내용(DEV, EDEV, SOCK)의 결과를 보여준다.
    ㅊ. [root@www root]# sar -r
         => 메모리와 스왑의 상태정보를 보여준다.
           - kbmemfree : 사용가능한 메모리의 양(kilobytes)
           - kbmemused : 사용중인 메모리의 양, 커널에서 사용중인 메모리는 제외(kilobytes)
           - %memused : 사용된 메모리의 퍼센트
           - kbmemshrd : 시스템에서 공유메모리로 사용된 메모리양, 리눅스 2.4커널에서는 항상
                        0이다.(kilobytes)
           - kbbuffers : 커널에서 버퍼로 사용한 메모리양(kilobytes)
           - kbcached : 커널에서 캐쉬로 사용한 메모리양(kilobytes)
           - kbswpfree : 스왑으로 사용가능한 공간(kilobytes)
           - kbswpused : 스왑으로 사용중인 공간 (kilobytes)
           - %swpused : 사용된 스왑의 퍼센트
    ㅋ. [root@www root]# sar -v
         => inode의 상태를 보여준다.
           - dentunusd : 디렉토리 캐쉬에서 사용되지 않는 캐쉬 entries
           - file-sz : file handles의 사용량
           - %file-sz : 리눅스 커널에서 할당할 수 있는 최대 파일 핸들 수에 대한 퍼센트
           - inode-sz : inode handlers의 사용량
           - super-sz : 커널에 의해 할당된 super block handlers의 수
           - %super-sz : 리눅스 커널에서 할당할 수 있는 최대 super block handlers의 퍼센트
           - dquot-sz : Disk Quota entries의 수
           - %dquot-sz : 캐쉬된 디스크 쿼타 엔트리의 최대 할당했을 때 사용할 수 있는 디스크
                        쿼타 엔트리의 수
           - rtsig-sz : RT 시그널의 대기된 수
           - %rtsig-sz : RT 시그널이 대기되었을 때 최대 대기가능한 RT 시그널의 퍼센트
    ㅌ. [root@www root]# sar -w
         => cswch/s 라는 단위로 초당 context switching 수를 보여준다.
    ㅍ. [root@www root]# sar -W
         => 스와핑상태를 보여준다.
           - pswpin/s : 시스템에서 swap in한 스왑페이지의 수
           - pswout/s : 시스템에서 swpa out한 스왑페이지의 수
   5) 참고
     이 명령은 cron데몬과 /etc/cron.d/sysstat라는 스크립트에 의해 시스템상에 /var/log/sa라는
    디렉토리밑에 'sadd'라는 이름으로 저장된다. dd는 해당 날짜를 의미한다.
(6) procinfo
   1) 설명: /proc 디렉토리의 내용을 화면에 보여준다.
   2) 사용법
     procinfo
   3) 사용예
     [root@www proc]# procinfo
     Linux 2.4.18-14 (bhcompile@stripples) (gcc 3.2 20020903 ) #1 Wed Sep 4 13:35:50 EDT 2002
     \ 1CPU [www]

     Memory:      Total        Used        Free      Shared     Buffers      Cached
     Mem:        513928      505492        8436           0       69308      392432
     Swap:       530104       45176      484928

     Bootup: Sat Feb  1 00:24:05 2003    Load average: 0.00 0.01 0.00 1/86 5959

     user  :       0:30:46.77   0.4%  page in : 10765771  disk 1:   544329r  537511w
     nice  :       0:00:06.80   0.0%  page out:  5327184
     system:       0:11:31.77   0.2%  swap in :      697
     idle  :   5d  3:30:07.98  99.4%  swap out:    11428
     uptime:   5d  4:12:33.00         context : 89723912

     irq  0: 228942504 timer                 irq  7:         2
     irq  1:       868 keyboard              irq  8:         1 rtc
     irq  2:         0 cascade [4]           irq 11:       356 usb-uhci, usb-uhci,
     irq  3:         2                       irq 12:      4247 PS/2 Mouse
     irq  4:         2                       irq 14:   1043283 ide0
     irq  5:   2996177 eth0                  irq 15:   3425753 ide1
     irq  6:         5
(7) fuser
   1) 설명: 사용중인 프로세스의 소유자를 보여주거나 신호를 보낸다.
   2) 사용법
     fuser option [디렉토리명]
   3) option
     -V: fuser 명령의 버전을 보여준다.
     -l: fuser 명령에서 사용하는 시그널목록을 보여준다.
     -v: 프로세스를 PID, USER, ACCESS, COMMAND 등의 형식으로 보여준다.
     -k: KILL 시그널을 보낸다.
     -m: 특정파일, 마운트된 파일시스템, 블록장치 등에게 신호를 보낼 때 k옵션과 같이 쓰인다.
   4) 사용예
    ㄱ. [root@linux245 root]# fuser -v /backup

                             USER        PID ACCESS COMMAND
        /backup              posein      972 ..c..  bash
                             root     kernel mount  /backup
         => /backup 이라는 파티션의 프로세스를 보여준다.
           (참고) ACCESS 의 값
                 c: 현재 디렉토리이다.
                 e: 현재 실행파일을 실행중인 상태이다.
                 f: 파일을 연 상태이다.
                 r: root 디렉토리라는 뜻이다.
                 m: 라이브러리가 공유된 상태이다.
    ㄴ. [root@linux245 root]# fuser -km /backup
          => /backup에 kill신호를 보낸다.

2. /proc 파일 시스템
(1) 설명: /proc파일 시스템은 일반 파일 시스템과는 다른 특수한 파일 시스템으로 프로세스와 커널
          의 내부적인 정보를 제공하기 위한 목적으로 만들어진 파일시스템이다. 사용자가 ps명령어
          를 사용해 프로세스에 대한 정보를 확인할 때 이 파일 시스템에 포함되어 있는 프로세스
          의 정보가 출력되는 것이다. 보통 새로운 프로세스가 생성되면 자동으로 /proc디렉토리에
          해당 PID와 같은 서브 디렉토리가 생성되고, 그 안에 해당 프로세스에 관한 정보가 들어가
          게 된다.
(2) /proc 파일시스템의 구조
   1) 1 : PID 1번에 대한 정보가 있는 디렉토리이다. 다른 PID번호는 해당 프로세스에 대한 정보를
         갖고 있는 디렉토리이다.
   2) cpuinfo : 프로세스에 관한 정보가 들어 있다.
   3) devices : 현재 커널에 설정된 디바이스 드라이버들의 리스트가 들어 있다.
   4) dma : 시스템에 현재 사용중인 DMA(직접 메모리 액세스)의 리스트가 들어있다. 하드웨어 충돌
           시에 이 파일을 참고해야 한다.
   5) interrupts : 시스템에서 사용중인 인터럽트의 리스트가 들어 있다. 역시 하드웨어 충돌시에
                  참고해야 한다.
   6) filesystems : 현재 커널에 설정된 파일 시스템의 리스트가 들어있다.
   7) iomem : 메모리 번지별로 할당된 리스트를 볼 수 있다.
   8) ioports : 시스템에 현재 사용중인 I/O포트의 리스트가 들어있다. 하드웨어 충돌시에 참고해야
               한다.
   9) kcore : 시스템에 장착된 물리적 메모리의 이미지로 실제 하드디스크의 용량을 차지하는 것은
            아니다. 이 파일은 프로그램 실행시 비정상 종료나 프로그램의 디버깅시 유용하게 참고
            할 수 있는 파일이라고 할 수 있다. 시스템에 장착된 램의 크기만큼 형성된다.
   10) kmsg : 커널의 syslogd로 보내는 메시지가 들어 있는 파일이다.
   11) loadavg
    ㄱ. 설명: 일정 간격으로 갱신되는 시스템 로드 정보(평균 부하율)가 들어 있다.
    ㄴ. 예
       [root@www proc]# cat loadavg
       0.03 0.01 0.00 1/86 5989
        => 첫번째는 최근 1분 동안의 서버평균 부하율, 두번째는 최근 5분, 세번째는 최근 15분 동
          안의 서버 평균부하율을 나타낸다. uptime 명령시에도 나타난다.
   12) meminfo : 물리적 메모리와 스왑메모리에 대한 정보가 들어 있다.
   13) modules : 커널에 연결된 모듈에 대한 정보가 들어 있다. 모듈에 관련해 문제가 생겼을 때
                유용하게 참고할 수 있는 파일이다.
   14) mounts: 현재 마운트되어 있는 정보가 들어있다.
   15) pci : 현재 사용중인 PCI의 리스트가 들어 있다.
   16) stat : 커널의 사용 현황이 들어 있다. 이 파일을 참고하면 현재 커널의 상태를 직접 파악할
             수 있다.
   17) uptime : 시스템 가동시간에 대한 정보가 들어 있다. uptime명령어를 사용할 때 uptime명령어
               가 이 파일의 내용을 참고하여 출력하게 된다.
   18) partitions: 시스템에 설치된 하드디스크의 파티션 정보가 들어있다.
   19) version: 커널 버전의 정보를 기록하고 있는 파일이다. uname 명령보다 더 자세한 정보를
               기록하고 있다.
   20) mdstat: RAID 사용시에 RAID에 관한 정보를 기록하고 있다.
   21) /proc/ide 디렉토리 : IDE 컨트롤러 및 드라이브에 대한 정보를 기록하는 디렉토리이다.
   22) /proc/scsi 디렉토리 : SCSI 컨트롤러 및 드라이브에 대한 정보를 기록하는 디렉토리이다.
   23) /proc/sys/kernel 디렉토리
    ㄱ. 설명: 시스템에 관한 정보가 들어있는 디렉토리이다.
    ㄴ. 주요파일
      a. osrelease : 운영체제의 버전을 알 수 있다.
      b. ostype : 운영체제를 알 수 있다.
      c. version : 커널의 생성 날짜를 알려준다. uname -v 명령과 같은 내용이다.
      d. hostname : 호스트이름을 알 수 있다.
      e. sysrq : 매직키라는 특수키를 사용할 수 있는 지 여부를 알 수 있다. 기본값이 '0'이고
                매직키가 사용불가하다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
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