A Tale That Wasn't Left

양철웅의, 특별히 주제를 정해두지 않은 이야기들

RSS

개발/운영 서버에 sar(sysstat)를 설치해요
Posted on Friday, November 29, 2024.

서버가 죽었어. 왜그런지 한번 볼까… 아니 왜 sar파일들이 없는거야!

TL;DR

개발/운영에 사용하는 서버에는 sar(sysstat) 설정이 필수입니다.

성능측정도구

리눅스 서버의 성능 및 상태를 점검하기 위한 다양한 도구들이 있습니다. 대표적으로 sar, iostat, vmstat가 있습니다. 이들 도구는 각각의 특징을 가지고 있으며, 서버의 성능을 모니터링하고 분석하는 데 유용합니다.

이 세가지만 사용해도 기본은 갑니다. 오늘은 서두에서 나온 sar이야기입니다. 장애가 발생해서 장애시점의 서버 상태를 볼렸더니 기본 설정이 되어 있지 않습니다.

sar (sysstat)

sar는 리눅스 시스템에서 중요한 성능 지표를 수집하고 분석하는 도구로, 최근 30일간의 데이터를 보존하여 장애 발생 시 트러블슈팅에 도움을 줍니다. 그래서 기본적으로 설정이 되어 있으리라고 기대했는데, ubuntu에 기본설정이 되어있지 않네요!

ubuntu@mars:~$ cat /etc/default/sysstat
...
# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
ENABLED="false"

설치 안되어 있다면

sudo apt install sysstat

기본설정 안되어 있다면

sudo nano /etc/default/sysstat
sudo systemctl enable sysstat
sudo systemctl start sysstat

기본 수집주기

cron이 10분마다 데이터를 수집하는 것이 기본입니다. 저장 데이터는 /var/log/sysstat 디렉토리에 저장됩니다. 오늘이 29일이라 sa29화일에 데이터가 저장되고 있습니다.

ubuntu@mars:/etc/cron.d$ ls -al /var/log/sysstat/
total 12
drwxr-xr-x  2 root root   4096 Nov 29 11:53 .
drwxrwxr-x 11 root syslog 4096 Nov 29 00:00 ..
-rw-r--r--  1 root root   3196 Nov 29 12:00 sa29

sar 사용 예

sar -u 2 5
12:01:04        CPU     %user     %nice   %system   %iowait    %steal     %idle
12:01:06        all     25.77      0.00      0.44      0.00      0.00     73.80
12:01:08        all     25.89      0.00      0.38      0.00      0.00     73.73

이는 CPU 사용량을 2초 간격으로 5번 측정합니다.

sar -r
12:03:22    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
12:03:24      9956440  14220900   1721312     10.51    176668   4095468   9056292     55.32   1523144   3670000       200
12:03:26      9956944  14221408   1720780     10.51    176668   4095472   9057228     55.32   1523144   3670996       268

메모리 사용 정보를 출력하며, kbmemfree, kbmemused, %memused 등의 지표를 제공합니다.

sar -d
12:04:07          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
12:04:09          vda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:04:11          vda     34.50      0.00    146.00      0.00      4.23      0.03      0.83      0.60

디스크 I/O 관련 지표를 확인할 수 있습니다.

sar -A -f /var/log/sysstat/sa29
11:53:34     LINUX RESTART      (8 CPU)

12:00:24        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
12:10:29        all     27.23      0.00      0.68      0.03      0.01      0.00      0.05      0.00      0.00     72.00

sar(sysstat) 정보를 이용해서 시스템의 상태를 파악하세요.

기본으로 활성화 해 주면 좋은 도구입니다.


Categories: 기술공유, devel
Tags: devel, diary, 기술공유