2022이전/Linux

리눅스 성능 측정 도구 패키지 sysstat

바로퇴장 2020. 8. 16. 16:21

해당 패키지는 리눅스 성능 분석 툴을 제공합니다. sar을 사용하기 위해서는 sysstat 설치합니다.

  1. 설치하기
## ubuntu
sudo apt-get install sysstat
## centos
rpm -ivh sysstat-12.1.3-1.x86_64.rpm


## 설치 후 systemd에 등록합니다.
systemctl enable sysstat
systemctl start sysstat

sar(System Activity Reporter)

리눅스 시스템의 cpu, memory, metwork, disk io 등의 지표 정보를 수집하여 sar command를 통해 실시간으로 지표를 보여주며, 파일로 저장한다. sar을 구성하는 요소는 아래와 같다.

  • sadc: System Activity Data Collector

    지표 데이터를 collect 하며 이를 /var/log/sa/sa~형태의 이진 데이터 파일로 저장하는 도구입니다.

  • sadf: Display Data collected by sar in multiple formats

    지표 데이터 파일은 이진 파일 형식이라 sar로만 report 할 수 있다. sadf는 csv, xml, svg 등의 포맷으로 변환해주는 도구이다. 주로 sar의 데이터를 다른 모니터링 리소스 지표의 데이터로 활용할 때 쓰이며, 최신 버전에선 svg 포맷으로 웹페이지에서 GUI 형식으로 볼 수 있다.

  • sa1 : Collect and store binary data in the system activity daily data file

    sadc로 추출한 모든 지표 데이터를 /var/log/sa날자 파일에 바이너리 형식으로 저장하는 bash스크립트

  • sa2 : Create a report from the current standard system activity dail data file

    sa1으로 생성된 데이터 파일을 기반으로, 원하는 지표 옵션을 선택해 사람이 읽을 수 있는 파일 형태로 저장 (/var/log/sar날짜 파일) 하는 스크립트

참고 : https://brunch.co.kr/@lars/9

Top / Free 값

top을 통해 살펴보는 프로세스 정보들

top

  • 시스템의 상태를 전반적으로 가장 빠르게 파악 가능(CPU, Memory, Process)
  • 옵션 없이 입력하면 interval 간격(기본 3초)으로 화면을 갱신하며 정보를 보여줌
  • top 실행 전 옵션
    • 순간의 정보를 확인하려면 -b 옵션 추가(batch 모드)
    • -n : top 실행 주기 설정(반복 횟수)
  • top 실행 후 명령어
    • shift + p : CPU 사용률 내림차순
    • shit + m : 메모리 사용률 내림차순
    • shift + t : 프로세스가 돌아가고 있는 시간 순
    • k : kill. k 입력 후 PID 번호 작성. signal은 9
    • f : sort field 선택 화면 -> q 누르면 RES순으로 정렬
    • a : 메모리 사용량에 따라 정렬
    • b : Batch 모드로 작동
    • 1 : CPU Core별로 사용량 보여줌
  • ps와 top의 차이점
    • ps는 ps한 시점에 proc에서 검색한 cpu 사용량
    • top은 proc에서 일정 주기로 합산해 cpu 사용율 출력
[root@localhost user1]# top

top - 02:58:25 up  1:56,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 234 total,   2 running, 232 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  1.3 sy,  0.0 ni, 97.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3861308 total,  1690440 free,   864576 used,  1306292 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  2706164 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
 10500 user1     20   0 3685676 190584  66712 S   7.7  4.9   0:37.66 gnome-she+ 
  9945 root      20   0  370108  63752  40936 S   4.3  1.7   0:13.76 X          
 11221 user1     20   0  681452  30912  17452 S   2.7  0.8   0:05.50 gnome-ter+ 
     3 root      20   0       0      0      0 S   0.3  0.0   0:07.79 kworker/0+ 
     9 root      20   0       0      0      0 R   0.3  0.0   0:01.68 rcu_sched  
 10468 user1     20   0  233124   5984   3184 S   0.3  0.2   0:00.23 at-spi2-r+ 
 60812 root      20   0  162224   2360   1572 R   0.3  0.1   0:00.15 top 

free을 통하여 살펴보는 정보들

free 명령어를 사용하면 쉽게 메모리 사용량과 여유량 그리고 캐싱으로 사용되는 메모리가 얼마나 있는지 파악할 수 있습니다. 실제 free 명령어는 리눅스 /proc/meminfo에서 메모리 정보를 가져와 보여줍니다. 그럼 free 명령어로 볼 수 있는 메모리 정보와 이와 관련된 meminfo의 값들을 알아보겠습니다.

  • [total] : 설치된 총 메모리 크기 / 설정된 스왑 총 크기
  • [used] : total에서 free, buff/cache를 뺀 사용중인 메모리. / 사용중인 스왑 크기
  • [free] : total에서 used와 buff/cahce를 뺀 실제 사용 가능한 여유 있는 메모리량 / 사용되지 않은 스왑 크기
  • [shared] : tmpfs(메모리 파일 시스템), ramfs 등으로 사용되는 메모리. 여러 프로세스에서 사용할 수 있는 공유 메모리
  • [buffers] : 커널 버퍼로 사용중인 메모리
  • [cache] : 페이지 캐시와 slab으로 사용중인 메모리
  • [buff/cache] : 버퍼와 캐시를 더한 사용중인 메모리
  • [available] : swapping 없이 새로운 프로세스에서 할당 가능한 메모리의 예상 크기. (예전의 -/+ buffers/cache이 사라지고 새로 생긴 컬럼)
옵션
  • [-h] : 사람이 읽기 쉬운 단위로 출력한다.
  • [-b | -k | -m | -g] : 바이트, 키비바이트, 메비바이트, 기비바이트 단위로 출력한다.
  • [--tebi | --pebi] : 테비바이트, 페비바이트 단위로 출력한다.
  • [--kilo | --mega | --giga | --tera | --peta] : 킬로바이트, 메가바이트, 기기바이트, 페타바이트 단위로 출력한다.
  • [-w] : 와이드 모드로 cache와 buffers를 따로 출력한다.
  • [-c '반복'] : 지정한 반복 횟수 만큼 free를 연속해서 실행한다.
  • [-s '초'] : 지정한 초 만큼 딜레이를 두고 지속적으로 실행한다.
  • [-t] : 합계가 계산된 total 컬럼줄을 추가로 출력한다.
[root@localhost user1]# free
              total        used        free      shared  buff/cache   available
Mem:        3861308      863568     1691448       42252     1306292     2707172
Swap:       2097148           0     2097148