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 : 메모리 사용 현황 확인