Categories
리눅스서버관리

[Linux] sar를 이용하여 서버의 현재 부하상태를 알아보기


서버가 부하가 가중되면 가장 먼저 알아내야 하는것이 원인을 파악하는 것일 겁니다. 하지만 그러기 어려운 상황이라면 가장 먼저 파악해야 하는것이 CPU에서 오는 부하인지 I/O에서 오는 부하인지를 알아내야 할 것입니다.

우선 기본적으로 부하상태(Load Average)를 알아내기 위해 top, w, uptime의 명령어를 활용할 수 있습니다.

top

top - 11:46:06 up 77 days,  1:16,  1 user,  load average: 0.06, 0.15, 0.11
Tasks:  87 total,   1 running,  86 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.5%us,  0.5%sy,  0.0%ni, 92.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   4033528k total,  1571260k used,  2462268k free,    26472k buffers
Swap:  3911816k total,      128k used,  3911688k free,   627956k cached

w

11:47:39 up 77 days,  1:17,  1 user,  load average: 0.08, 0.14, 0.11
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    121.133.79.177   11:13    0.00s  0.01s  0.00s w

uptime

11:47:56 up 77 days,  1:18,  1 user,  load average: 0.06, 0.13, 0.10

top > w > uptime 순으로 보여지는 정보의 양이 적어지는군요. top의 경우에는 실행중인 프로세스의 목록도 표시됩니다. 오늘 언급하려는것은 sar(System Activity Reporter)입니다. 매우 간단하게 부하를 분류하여 보여줍니다.

$ sar
Linux 2.6.18-238.19.1.el5 (Theeye)        09/29/11

16:20:10 CPU %user %nice %system %iowait %steal %idle
16:30:10 all 17.81 0.84  2.75    68.50   0.00   10.10
16:40:23 all 16.75 0.00  3.26    69.68   0.00   10.30
Average: all 17.28 0.41  3.01    69.10   0.00   10.20

위의 시스템은 IO대기가 차지하는 비율이 70%에 육박하는 상태입니다. IO문제가 분명하군요. 보통 DB 서버들이 부하가 걸릴때 위와 같은 모습을 보입니다. 이 경우 메모리를 증설하면 디스크에 읽고 써야 하는 데이터를 그만큼 메모리에 올릴 수 있어 디스크의 IO를 현저히 줄일 수 있습니다.

$ sar
Linux 2.6.18-238.19.1.el5 (Theeye)        09/29/11

14:30:01 CPU %user %nice %system %iowait %steal %idle
15:50:01 all 14.67 0.10  4.51    1.63    0.00   79.08
16:00:01 all 17.06 4.91  4.96    1.53    0.00   71.53
16:10:01 all 14.63 0.00  4.74    1.21    0.00   79.41
Average: all 13.04 2.18  3.98    8.36    0.00   72.45

메모리를 8G에서 16G로 증설한 후의 모습입니다. 정말 신기할 정도로 IO가 줄었네요. sar에서 자주 쓰이는 옵션으로는 다음과 같은 것이 있지 않을까 생각합니다.

-u : CPU 사용율 확인
-P : 특정 CPU의 사용율 확인 (sar -P 0)
-q : Load Average 확인
-r : 메모리 사용 현황 확인

sar는 sysstat 패키지에 포함되어있습니다. 다음과 같이 설치 가능합니다.

$ yum install sysstat
Exit mobile version