개발/운영 서버에 sar(sysstat)를 설치해요
Posted on Friday, November 29, 2024.
Posted on Friday, November 29, 2024.
서버가 죽었어. 왜그런지 한번 볼까… 아니 왜 sar파일들이 없는거야!
TL;DR
개발/운영에 사용하는 서버에는 sar(sysstat) 설정이 필수입니다.
성능측정도구
리눅스 서버의 성능 및 상태를 점검하기 위한 다양한 도구들이 있습니다. 대표적으로 sar, iostat, vmstat가 있습니다. 이들 도구는 각각의 특징을 가지고 있으며, 서버의 성능을 모니터링하고 분석하는 데 유용합니다.
- sar (System Activity Reporter): CPU, 메모리, 네트워크, 디스크 I/O 등의 시스템 활동을 기록하고 분석할 수 있는 도구입니다. 직전 한달간의 데이터를 저장하기 때문에 아주 유용합니다.
- iostat: 디스크 I/O 성능을 측정하는 도구로, 디스크 사용량과 성능을 모니터링할 수 있습니다.
- vmstat: 시스템의 가상 메모리 사용량 및 프로세스 활동을 모니터링하는 데 사용됩니다. CPU 및 메모리 사용량, 프로세스 상태 등을 실시간으로 확인할 수 있습니다.
이 세가지만 사용해도 기본은 갑니다. 오늘은 서두에서 나온 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"
설치 안되어 있다면
sysstat
패키지를 설치합니다.
sudo apt install sysstat
기본설정 안되어 있다면
/etc/default/sysstat
파일을 열어ENABLED="true"
로 설정합니다.
sudo nano /etc/default/sysstat
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 사용 예
- CPU 사용량 확인:
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
등의 지표를 제공합니다.
- 디스크 I/O 상태 확인:
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) 정보를 이용해서 시스템의 상태를 파악하세요.
기본으로 활성화 해 주면 좋은 도구입니다.