공유할 서비스 선택

TECH


TECH

OS OS 모니터링 하실 때 많이 사용되는 SAR에 대해 아시죠?

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 840회 좋아요 0회 작성일 23-12-17 20:13

본문

오늘은 여러분들이 OS내에서 모니터링하실때 매우 자주 사용되는 SAR에 대해 알아보겠습니다.~

 

 

- SAR란 무엇입니까?

 . SAR은 시스템 활동을 수집하고 보고하는 데 사용되는 유틸리티입니다. 대부분의 핵심 시스템 기능과 관련된 데이터를 수집하고 해당 측정항목을 이진 데이터 파일에 기록합니다.

 . SAR은 sa## 파일(예: sa01)을 구체적으로 쿼리하거나 시스템에서 현재 실행 중인 통계를 요청하는 데 사용할 수 있는 바이너리(/usr/bin/sar)이기도 합니다.

 

Information and statistics collected include

 

CPU / IO / System / Nice / Idle percentages

Network Traffic / Network Errors

Load Average and Run queue

Interrupts

Memory Free / Cached / Buffered / Swapped

Device usage per Major/Minor number

And many others

 

* SAR은 iostat와 같은 다른 통계 보고 도구도 제공하는 sysstat 패키지에 의해 제공된다. 기본적으로 sysstat 패키지는 설치되지 않음에 유의한다.

 

 

 

1. 설치 방법 

 

# yum install sysstat (repository가 연결되었을때)

 

or

 

# rpm -ivh sysstat (RPM 패키지 있을때)

 

 

2. 설정파일 

 

 1)   /etc/sysconfig/sysstat

------------------------------------------------------------------------

# How long to keep log files (in days).

# If value is greater than 28, then use sadc's option -D to prevent older

# data files from being overwritten. See sadc(8) and sysstat(5) manual pages.

HISTORY=28    //이 파라미터는 SAR에 성능 로그 파일이 보관되는 기간을 결정합니다. 기본값은 28일입니다

 

# Compress (using xz, gzip or bzip2) sa and sar files older than (in days):

COMPRESSAFTER=31   //이 파라미터는 SAR을 통해 압축할 파일의 경과 기간을 결정합니다. 기본값은 31입

 

# Parameters for the system activity data collector (see sadc manual page)

# which are used for the generation of log files.

SADC_OPTIONS=" -S DISK"   // 

 

# Directory where sa and sar files are saved. The directory must exist.

SA_DIR=/var/log/sa    //SAR이 로그 파일을 저장하는 위치입니다.

 

# Compression program to use.

ZIP="xz"   // 압축된 로그 파일이 포함되는 기본 zip 파일입니다. 

           // 31일을 초과하여 파일을 보관하는 경우 압축을 활성화해야 합니다. 압축 파일은 디스크에서 가능한 최소한의 공간을 차지합니다.

 

------------------------------------------------------------------------

 

2) /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer(RHEL 8기준)

# vim /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer

[Unit]

Description=Run system activity accounting tool every 10 minutes

 

[Timer]

OnCalendar=*:00/10   // 10분마다 데이터를 수집한다. 5분으로 줄일수있다. 하지만 데이터가 많아진다~

 

[Install]

WantedBy=sysstat.service

 

 

- 설정이 변경한 후에는 데몬을 재시작해줘야합니다. 

 

# systemctl daemon-reload

 

 

3. 사용법

 

- SAR를 통해 현재 상태를 모니터링 할수도 있고, 과거 내역을 볼수도있다는 것이 장점입니다. 

 

  1) 현재 상태 확인 

      - 현재 CPU 상태를 1 초간격으로 10번 출력 

 

# sar 1 10   

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

19:54:04        CPU     %user     %nice   %system   %iowait    %steal     %idle

19:54:05        all      0.00      0.00      0.06      0.00      0.00     99.94

19:54:06        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:07        all      0.00      0.00      0.06      0.00      0.00     99.94

19:54:08        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:09        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:10        all      0.06      0.00      0.00      0.00      0.00     99.94

19:54:11        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:12        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:13        all      0.00      0.00      0.00      0.00      0.00    100.00

19:54:14        all      0.00      0.00      0.00      0.00      0.00    100.00

Average:        all      0.01      0.00      0.01      0.00      0.00     99.98

 

    - 현재 CPU 상태를 1초간격으로 5번 출력하는데, CPU 9번째 코어를 보는 명령어입니다. 

 

# sar 1 5 -P 9

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

19:56:53        CPU     %user     %nice   %system   %iowait    %steal     %idle

19:56:54          9      0.00      0.00      0.00      0.00      0.00    100.00

19:56:55          9      0.00      0.00      0.00      0.00      0.00    100.00

19:56:56          9      0.00      0.00      0.00      0.00      0.00    100.00

19:56:57          9      0.00      0.00      0.00      0.00      0.00    100.00

19:56:58          9      0.00      0.00      0.00      0.00      0.00    100.00

Average:          9      0.00      0.00      0.00      0.00      0.00    100.00

 

 

    - 현재 MEM를 1초간격으로 3번 출력 

 

# sar -r 1 3

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

19:59:27    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty

19:59:28    128599436 128495204   1396632      1.06      5812    779040   2151424      1.52    352268    842900         4

19:59:29    128599436 128495204   1396632      1.06      5812    779040   2151424      1.52    352268    842928         4

19:59:30    128599436 128495204   1396632      1.06      5812    779040   2151424      1.52    352268    842928         4

Average:    128599436 128495204   1396632      1.06      5812    779040   2151424      1.52    352268    842919         4

 

 

    - 현재 io상태를 1초간격으로 3번 출력 

 

# sar -b 1 3

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

20:00:11          tps      rtps      wtps      dtps   bread/s   bwrtn/s   bdscd/s

20:00:12         0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:00:13         0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:00:14         0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

 

    - 현재 Disk상태를 1초 간격으로 2번 출력 

 

# sar -d 1 2

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

20:02:07          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util

20:02:08      nvme0n1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:02:08          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:02:08          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

20:02:08          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util

20:02:09      nvme0n1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:02:09          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:02:09          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

Average:          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util

Average:      nvme0n1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

 

 

    - 현재 NIC 상태를 1초 간격으로 2번 출력 

 

# sar -n DEV 1 2

Linux 5.14.0-362.13.1.el9_3.x86_64       17/12/23        _x86_64_        (16 CPU)

 

20:06:50        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

20:06:51           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:06:51         eno1      8.00      1.00      0.50      0.15      0.00      0.00      0.00      0.00

 

20:06:51        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

20:06:52           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

20:06:52         eno1      3.00      3.00      0.34      0.35      0.00      0.00      0.00      0.00

 

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil

Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:         eno1      5.50      2.00      0.42      0.25      0.00      0.00      0.00      0.00

 

==> 이렇게 실시간으로 명령어 옵션들을 넣어 모든 상태를 볼수있습니다. 하지만 저는 SAR의 최대장점은 과거 데이터를 보는데 있다고 생각합니다. 

 

 

이런 경우입니다. 

Q-1) 서버가 언제 죽었어?  

  --> SAR 데이터를 보고 데이터가 멈춰진 시간을 보면 예측가능합니다. 

 

Q-2) 서버가 라이브 행인데, 언제 부터 라이브 행이였어?

   --> 서버 리부팅을 한 후 , SAR 데이터를 보고 확인이 가능합니다. 

 

Q-3) 언제부터 이렇게 서버에 부하가 많았었나?

   --> SAR를 통해 과거 데이터를 분석하여 그 시점을 찾을수있습니다. 

 

Q-4) 언제부터 이렇게 메모리가 반환이 안된거야?

       언제부터  CPU 사용율을 증가했지?

   --> 과거 SAR데이터를 분석하여 그 시점을 찾을수있습니다. 

 

 

그럼 과거 데이터를 어떻게 보는지 확인해보겠습니다. 

- 데이터는 /var/log/sa 디렉토리에 쌓이게 되는데 파일이 두개입니다.  sa 하고 sar 이것의 차이가 뭘까요? 

 

# ls

sa01  sa04  sa05  sa07  sa10  sa11  sa12  sa13  sa14  sa15  sa16  sa17  sa18  sa19  sa20  sa22  sa23  sa26  sa27  sa28  sa29  sa30  sar12  sar13  sar14

--------------

sa# - 시스템 활동 바이너리 데이터 파일입니다.

sar## - 시스템 활동 보고서 파일입니다.

--------------

 

1) sa#

쉽게 말해 sa 는 바이너리 파일이라, SAR 명령어를 통해 볼수있습니다. 

 

# sar -f /var/log/sa/sa11   // sa11파일 내용을 볼수있습니다. 

 

# sar -f /var/log/sa/sa11 -r  // sa11파일내 메모리 파일만 봅니다. 

  

 

2) sar##

   - 일반 텍스트 파일처럼 vi or cat 으로 확인이 가능합니다. 

 

# cat /var/log/sa/sa11

 

 

그럼 왜 sa# sar# 파일이 나누는지 궁금할것입니다. 

 

예를 들어 오늘이 17일인데 sa17 파일은 현재 시스템이 기록중입니다. 그래서 vi 나 cat으로 볼수없습니다. 하지만 00시 기준으로 이 파일을 sar17로 만들면서 일반 파일로 변경합니다. 

그래서 당일 데이터이나 현재 시간 이전의 성능데이터를 보려면 sa 당일 파일을 봐야합니다. 

그리고 보통 지난날의 성능데이터는 sar파일을 보는것이 편합니다.

 

 

근데 여기서 너무 숫자로만 보는것이 불편하다고 하시는 분이 있습니다. 그래서 오픈소스에 

SAR데이터를 GUI 로 변형해서 보여주는 Tool이 있습니다. 그 이름은 Ksar입니다. 

 

다운로드 사이트 는 아래와 같습니다. 

https://sourceforge.net/projects/ksar/

 

예시로 아래와 같이 원하시는 날짜의 파일을 고르시면 아래와 같이 그래프로 보여주게됩니다. 

 

ad3f06240cd74d045a7d98e389dae3e0_1702811585_5656.jpg
 

개인적으로 저는 이 프로그램을 자주 사용했습니다.~

 

 

 

오늘도 긴글 읽어주신분들 감사합니다. 꼭 sar 명령어를 마스터 하시길 바랍니다. ^^

 

 

> 참고링크: (유료ID가 있어야 볼수있습니다.)

https://access.redhat.com/solutions/276533

https://access.redhat.com/solutions/4775761

 

>좋은 자료 공유 

https://www.youtube.com/watch?v=su9u4uSGfLg

https://www.youtube.com/watch?v=_4WVPSfGqos

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
74 OS OSworker 아이디로 검색 전체게시물 01-23 305
Red Hat 업무별 직군들에 대해 알아보겠습니다. #AM #GPS #TSE #TAM

카테고리 : OS

305 0
작성자 : OSworker 24/01/23
73 OS OSworker 아이디로 검색 전체게시물 01-15 703
[보안취약점] OpenSSH 보안이슈 `cve-2023-48795`

카테고리 : OS

703 0
작성자 : OSworker 24/01/15
72 OS OSworker 아이디로 검색 전체게시물 12-30 236
Red Hat z-stream 패키지를 어떻게 구분하나요? 또 z-stream이란 무엇인가요?

카테고리 : OS

236 0
작성자 : OSworker 23/12/30
71 OS OSworker 아이디로 검색 전체게시물 12-24 332
[issue] RHEL8 버전 설치시 swap 이 최대 128G 까지만 된다?

카테고리 : OS

332 0
작성자 : OSworker 23/12/24
열람중 OS OSworker 아이디로 검색 전체게시물 12-17 841
열람중
OS 모니터링 하실 때 많이 사용되는 SAR에 대해 아시죠?

카테고리 : OS

841 0
작성자 : OSworker 23/12/17
69 OS OSworker 아이디로 검색 전체게시물 11-27 813
요즘 이슈인 SUSE Liberty VS Red Hat Enterprise Linux 에 대해 들어보셨나요?

카테고리 : OS

813 0
작성자 : OSworker 23/11/27
68 OS OSworker 아이디로 검색 전체게시물 11-20 429
레드햇, RHEL 9.3 공개 - Podman 컨테이너 관리 기능 강화

카테고리 : OS

429 0
작성자 : OSworker 23/11/20
67 OS OSworker 아이디로 검색 전체게시물 11-12 1768
레드햇 자격증에 대해 쉽게 설명드리고자 합니다.

카테고리 : OS

1,768 0
작성자 : OSworker 23/11/12
66 OS OSworker 아이디로 검색 전체게시물 10-26 740
RPM 명령어와 Yum 명령어에 대해 알아보겠습니다. #실무 #꿀

카테고리 : OS

740 0
작성자 : OSworker 23/10/26
65 OS OSworker 아이디로 검색 전체게시물 10-15 637
OS 내에서 Java 설치 및 설정 하기 #java version

카테고리 : OS

637 0
작성자 : OSworker 23/10/15
Total 84건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top