[유닉스] 시스템 성능 관리 명령어


시스템 성능 관리 명령어


개요

  • 시스템이 현재 사용하고 있는 자원의 현황 조사
  • 시스템이 효율적으로 동작하고 있는지 검사
  • 시스템 성능에 영향을 미치는 요소, 시스템이 최적의 성능을 발휘하기 위해 무엇이 필요한지 알게 됨


시스템 상태 : uptime

  • 시스템의 평균 부하에 대한 수치를 측정
  • 시스템이 얼마나 오랜 시간 동안 운영되고 있는지를 통계와 함께 보여줌
    • 00:20:29 : 현재 시간
    • up 2:27 : 부팅 후부터의 동작 시간
    • 2 users : 현재 서버에 접속된 사용자 수
    • load average : 과거 1, 5, 15분간의 시스템 평균 부하(load)
    • 일반적으로 평균 부하가 5.0-10.0 이상이면 높은 부하이므로 부하 분산 필요
# uptime
00:20:29 up 2:27, 2 users, load average: 0.16, 0.03, 0.01


프로세스 상태 : ps

  • 현재 실행 중인 모든 프로세스들의 상태를 감시하는데 사용
  • 프로세스 목록, 각 프로세스의 상태, 크기, 이름, 소유자, CPU 시간, 실제 시간 등 정보를 보여줌

메모리 상태 : vmstat

  • 메모리의 상태와 성능 감시에 사용
  • 형식 : vmstat [delay [count]]
    • delay는 몇 초 간격으로 메모리 상태를 체크할 것인지 지정하는 값
    • count는 명령어 사용자에게 몇 번이나 반복 실행하여 상태를 보여줄 것인지 그 회수를 지정하는 값
    • count를 지정하지 않으면 지정된 시간 간격으로 정보를 수집하여 계속 출력
# vmstat
procs -----------memory------- --swap- ---io- -system- --------cpu--------
r b     swpd free buff   cache       si so    bi bo    in cs     us sy id wa st
1 0     5716 7176 62548 16540         0 0      0 1     31 11      5 12 5  0  0
  • vmstat 결과의 내용


CPU 상태 : mpstat

  • CPU의 성능 상태 출력
  • SMP(대칭형 다중 프로세서)일 경우 각 프로세서별 상태를 보여줌
# mpstat
Linux 2.6.33.3-......

21:36:59 CPU %user %nice %sys %iowait %irq %soft %steal %guest %idle
21:36:59 all  5.18 0.00  2.32  5.43   0.51 0.13   0.00   0.00  86.96
  • mpstat 실행 결과


네트워크 상태 : netstat

  • 네트워크와 관련된 다양한 정보를 알 수 있는 명령
  • 네트워크 연결 상태
    • 옵션을 주지 않으면 활성화된 TCP와 UDP의 상태를 보여줌
    • tcp만 연결 상태(state)를 나타냄
    • udp는 비연결형 프로토콜
    • 프로토콜 연결 상태 : 현재 연결을 위한 ESTABLISHED, 연결을 기다리는 LISTEN, 종료 중에 있는 TIME_WAIT 등
# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 70 0 10.0.2.15:56232 productsearch.ubu:https CLOSE_WAIT
tcp 70 0 10.0.2.15:56255 productsearch.ubu:https CLOSE_WAIT
......
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags  Type  State I-Node  Path
unix    2     [ ]  DGRAM        8157    /var/spool/postfix/dev/log
unix    23    [ ]  DGRAM        8155    /dev/log
......
  • 인터페이스 구성 정보
    • -i 옵션 사용
    • 네트워크 인터페이스 구성 정보인 라우팅 테이블 화면
# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500  0 8402950  0      0      0    463998   0     0       0   BRU
lo   16436 0 19117    0      0      0    19117    0     0       0   LRU


디스크 상태 : iostat

  • 디스크 ‘입출력’의 통계량과 전송비율 등 디스크 입출력에 관련된 상태 출력
  • 형식 : iostat [time [count]]
  • time초 간격으로 count개의 상태를 체크하여 보여줌
  • 사용 예 : iostat 2 : 사용자의 중지 명령이 있을 때까지 2초 간격으로 업데이트된 목록을 보고함
# iostat 2
Linux 2.6.33.3-......

avg-cpu: %user %nice %system %iowait %steal %idle
          5.17  0.00   2.31   5.43    0.00  94.22
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev3-0  0.70   0.04       5.56      712     6190947

avg-cpu: %user %nice %system %iowait %steal %idle
         1.46   0.16   2.34   1.82    0.00  94.22
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
dev3-0  0.30  2.04        3.27       0        0


CPU와 디스크 상태 : sar

  • sar 명령은 시스템 정보를 보고할 때 쓰이는 명령어
  • cron 명령과 같이 사용하여 주기적으로 장기간 데이터를 수집할 수 있는 장점을 가짐

  • sar의 CPU 분석 기능
    • CPU 이용 옵션 –u를 붙이지 않아도 기본적으로 같은 결과를 보고
    • CPU는 사용 중이거나 휴지(idle) 상태
      • 사용 중 : 시스템 고유 작업과 사용자의 작업을 수행
      • 사용 중이지 않을 때 : 입출력을 기다리거나 휴지 상태