공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 838회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
194 OS OSworker 아이디로 검색 전체게시물 02-28 262
RHEL8부터는 네트워크 본딩을 구성하려면 nmcli 유틸리티를 사용해야 합니다. 레드햇 권고입니다.

카테고리 : OS

262 0
작성자 : OSworker 24/02/28
193 Middleware 미들웨어 아이디로 검색 전체게시물 02-20 373
(AI-2) Chat-GPT 4All - 허깅페이스 & LLM 국내 인기순위 (Open Ko-LLM LeaderBoard)

카테고리 : Middleware

373 0
작성자 : 미들웨어 24/02/20
192 OS OSworker 아이디로 검색 전체게시물 02-19 409
[질문] free 메모리에서 Used가 너무 높게 나오는데, ps 명령어에는 사용율이 없습니다.

카테고리 : OS

409 0
작성자 : OSworker 24/02/19
191 Middleware 미들웨어 아이디로 검색 전체게시물 02-06 409
(AI-1) Chat-GPT 4All - PC 설치 방법

카테고리 : Middleware

409 0
작성자 : 미들웨어 24/02/06
190 OS OSworker 아이디로 검색 전체게시물 02-05 426
1월31일에 발표된 보안취약점 CVE-2024-21626에 대해 알아보겠습니다.

카테고리 : OS

426 0
작성자 : OSworker 24/02/05
189 OS OSworker 아이디로 검색 전체게시물 01-31 458
OS 백업 아직도 3rd part 사용하시나요? 이제는 OS 에 포함된 ReaR 사용해보세요~!

카테고리 : OS

458 0
작성자 : OSworker 24/01/31
188 OS OSworker 아이디로 검색 전체게시물 01-23 303
Red Hat 업무별 직군들에 대해 알아보겠습니다. #AM #GPS #TSE #TAM

카테고리 : OS

303 0
작성자 : OSworker 24/01/23
187 Middleware 미들웨어 아이디로 검색 전체게시물 01-19 200
(오픈소스 활용-26) scouter 2.22 에서 Weblogic14 모니터링 등록 중 이슈 조치방법

카테고리 : Middleware

200 0
작성자 : 미들웨어 24/01/19
186 OS OSworker 아이디로 검색 전체게시물 01-15 699
[보안취약점] OpenSSH 보안이슈 `cve-2023-48795`

카테고리 : OS

699 0
작성자 : OSworker 24/01/15
185 Middleware 미들웨어 아이디로 검색 전체게시물 01-06 307
(오픈소스 활용-25) scouter 2.22 에서 JEUS8 모니터링 등록 하는 방법

카테고리 : Middleware

307 0
작성자 : 미들웨어 24/01/06
Total 204건
게시물 검색

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