강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

아파치 2 최적화 (웹 서비스의 성능 최적화)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

한 국 과 학 기 술 원 (KAIST)

아파치 2 최적화

웹 서비스의 성능 최적화는 웹서버에서의 튜닝과 웹 브라우져, 웹 콘텐츠 그리고 다른 시스템과의 관계 등을 동시에 다루어야 하지만 자바스크립트, 웹 그래픽, HTML, CSS 등의 최적화에 대한 것은 이 글에서 취급하지 않는다. 필자는 http://www.websiteoptimization.com/ 에서 그런 정보들을 얻을수 있었다.

이 글은 아파치 웹 서버의 최적화에 대해서만 다루고 있으므로, 그 외의 다른것들과 통합해서 웹 서비스 성능 개선 방안을 마련하는 것은 여러분의 몫이다.


<필자소개>

성명 : 박성수

“리눅스포털” www.superuser.co.kr 대표

중소기업연수원 객원교수

한국정보통신인력개발센터 전문위원

--------------------------------------------------

1회|2005. 7|아파치 2 최적화

--------------------------------------------------

필자소개 

필자는 현재까지 “리눅스포털” www.superuser.co.kr의 대표 운영자로서 활동하고 있고 약 10년간 서버관리를 해왔으며, 그리고 리눅스 서버관련 전문서 집필 및 리눅스 강의를 주로 하고있다.  필자의 가장 큰 꿈이자 희망이라고 한다면 대한민국에서 리눅스가 아무런 제약없이 사용되어지는 것이다. 현재는 이런 문제에 관심을 가지고 나름대로 활동하고 있다.


발문

서버관리 업무에서 가장 큰 관심거리 두가지를 들라고 한다면 안전한 시스템구현을 위한 보안문제와 성능 최적화 및 향상을 위한 튜닝문제일 것이다.  이번강좌에서 필자는 현재 웹서버로써 가장 많이 사용되고 있는 아파치의 성능향상을 위한 튜닝방법에 대하여 실무적인 접근을 해보고자 한다.  이번 강좌에서 언급하지 아니한 많은 부분의 튜닝방법(예: H/W튜닝, 운영체제튜닝등)들이 있기는 하지만 이번 강좌는 순수하게 아파치웹서버 자체에 대한 튜닝임을 밝혀둔다.


필자는 리눅스 시스템 관리자이다.

시스템 관리자란 어떤일을 하는가? 서버가 언제 어떻게 될지 모르는 상황에서 자기시간 이라는 개념이 없으며, 끊임없이 발생하는 취약성들에 대한 점검과 패치, 고객의 각종 문제들, 손실된 데이터 복구 문제 등 늘 긴장속에서 살아가야한다.

시스템 관리자라는 직업이 의미하는 바는 여기서 그치지 않는다.

시스템 유지보수, 성능 관리, 가용성 관리, 용량 관리, 장애 복구 등 시스템 관리자라면 대게 이 정도의 항목들을 관리하게 된다. 다른 분야 역시 마찬가지 이겠지만 시스템 관리자라는 업무는 끊임없는 자기 개발과 노력을 요구한다.

이 글에서는 시스템 관리자의 이런 개발과 노력에 도움이 되고자 리눅스로 운영하는 아파치 웹서버의 최적화에 관해서 다루기로 한다.


아파치 성능 테스트 계획


테스트 환경

OS  : Red Hat Enterprise Linux AS release 4 (Nahant)

Kernel Version : 2.6.9-5.ELsmp

CPU & Cache : 2 Xeon(TM) CPU 3.06GHz 3057MHz, 512 KB Cache

Memory :  2G

Swap : 4G

Web server : Apache Http Server 2.0.52

Web test tool : ab, Httperf, flood


테스트 계획

rpm 설치후 기본 상태에서 설치된 웹서버에 동시 접속자 1000 명이 1000 번의 요청을 하는 경우를 테스트하여 웹서버의 성능을 측정한다.

다양한 환경설정을 변경해서 웹서버를 튜닝한 이후 다시 동일한 환경으로 테스트해서 실제적인 성능향상이 있는지를 점검한다.


테스트 케이스

1) ab -n 1000 -c 1000 -t 10 http://210.183.235.95/

2) httperf --server 210.183.235.95 --port 80 --rate 1000 --num-conns 20000 --hog

3) flood floodconf..xml > result.out (floodconf.xml 파일에 환경설정)

기본설치후 아파치 성능 테스트


웹사이트가 느리면 고객은 바로 다른 사이트로 이동하기 마련이다.

따라서 기업은 고객을 확보, 유지하기 위해 웹사이트의 성능을 최상의 상태로 유지해야하며 이로 인해 웹사이트의 성능을 진단하고 분석하는 도구들에 대해서 많은 관심을 가지고 있으며 현재 기업들마다 다양한 방법들로 성능을 관리하고 있다.

상용 SW

공개 SW

WEBest

SiteAngel 

sitemonitor

WatchPro/TestPro 

WEBest

ab

Flood

Httperf

Hammerhead

Web Performance Tool (WPT)

표 1. <웹서버 성능테스트 프로그램 비교>


웹서버의 성능을 측정하기 위해서 먼저 공개SW 벤치마크 프로그램 ab, Flood, Httperf 에 대해서 알아보기로 하자.


ab

ab는 "Apache HTTP server Benchmarking tool" 의 약어로서 아파치서버의 응답속도를 측정하는 밴치마킹툴이다. 이 툴은 현재 설치된 아파치서버의 실행속도 및 성능테스트를 위해서 제우스테크널리지(Zeus Technology Ltd, http://www.zeustech.net/)의 Adam Twiss가 개발한 툴이며. 아파치를 설치하고 나면 기본적으로 설치되므로 별도의 설치 과정 없이 바로 사용할 수 있다.

명령어위치: /usr/local/apache/bin/ab            

(RPM설치시 : /usr/bin/ab)


아래는 ab를 이용해서 -c(한번에수행할 다중요구수) 값을 1000으로하고, -n(페이지요청수) 값을 1000 으로 하였으며 -t(테스트허용 최대시간)값을 10으로 주는 예이다.


[root@www ~]# ab -c 1000 -n 1000 -t 10 http://210.183.235.95/

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0

Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


Server Software:        Apache/2.0.52

Server Hostname:        210.183.235.95

Server Port:            80


Document Path:          /

Document Length:        440 bytes


Concurrency Level:      1000

Time taken for tests:   10.6038 seconds

Complete requests:      13416

Failed requests:        0

Write errors:           0

Total transferred:      8176434 bytes

HTML transferred:       5907440 bytes

Requests per second:    1340.79 [#/sec] (mean)

Time per request:       745.829 [ms] (mean)

Time per request:       0.746 [ms] (mean, across all concurrent requests)

Transfer rate:          797.92 [Kbytes/sec] received


Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        1  286 1301.0      4    9005

Processing:    21  148 467.1     95    6437

Waiting:       17  135 424.3     87    6434

Total:         57  434 1457.6    108    9703


Percentage of the requests served within a certain time (ms)

  50%    108

  66%    120

  75%    127

  80%    135

  90%    179

  95%   3076

  98%   9068

  99%   9076

 100%   9703 (longest request)


ab 의 측정결과에서 다음과 같은 내용을 분석할수 있다.

Server Software

아파치버전을 표시

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,159 명
  • 현재 강좌수 :  36,519 개
  • 현재 접속자 :  339 명