웹 서버 벤치마크 도구
정용화* 박진원**
최근 들어 웹 서버의 성능을 객관적으로 평가할 수 있는 새로운 벤치마크 프로그램이 개발되고 있다. 본 고에서는 표준 웹 서버 벤치마크 프로그램으로 현재 널리 이용되고 있는 SPECweb96 벤치마크에 대해서 간단히 서술한다. ▒
I. 서 론
일반적으로 벤치마크란 서로 다른 컴퓨터 기종들의 성능을 객관적으로 평가하는 표준 프로그램이라 할 수 있다[1-4]. 그러나 최근 들어 웹 사이트의 접속 건수가 하루에 수백만 건을 넘어서면서, 매우 다양한 World Wide Web[5] 서버용 소프트웨어 중에서 적절한 웹 서버 소프트웨어를 선택하는 일이 매우 중요한 이슈로 등장하게 되었다. 예를 들어 과부하로 웹 서버가 제대로 동작하지 않으면, 네트워크 연결에 문제를 야기시키고 방문자에 대한 서비스를 거부하며 궁극적으로 네트워크가 중단되는 일이 발생할 수 있기 때문이다.
본 고에서는 이러한 웹 서버 소프트웨어의 성능을 평가하는 벤치마크 중 표준 벤치마크로 평가되고 있는 SPECweb96[6]에 대해서 살펴보고, 현재까지 발표된 벤치마크 시험 결과 중 일부를 비교 분석하기로 한다.
II. SPECweb 벤치마크 구성
세계적인 벤치마킹 조직인 SPEC(Standard Performance Evaluation Corporation)[6]의 Open Systems Group에서 1996년에 발표한 SPECweb96은 기본적인 웹 서비스에 대한 공통적인 성능 측정 결과를 제공하는 최초의 벤치마크 도구이다. SPECweb96에 참여한 또 다른 주요 기관으로는 CommerceNet[7], DEC[8], HAL[9], HP[10], IBM[11], Intel[12], Netscape[13], OpenMarket[14], Siemens Nixdorf[15], Silicon Graphics[16], Spyglass[17], Sun[18] 등이 있다. 특히 SPECweb96은 어떤 웹 서버 소프트웨어가 주어진 하드웨어 및 네트워크 연결에 대해서 최고의 성능을 제공하는가를 결정하는데 많은 도움을 줄 수 있다.
SPECweb96은 시스템이 얼마나 효과적으로 HTTP(Hypertext Transfer Protocol)[5] GET 요구를 처리할 수 있는지를 측정하도록 설계되었다. 따라서 SPECweb96 테스트베드는 시험 대상인 웹 서버 소프트웨어를 수행하는 서버 머신(UNIX 또는 Windows NT 머신)과 여러 개의 클라이언트 머신으로 구성된다. 클라이언트에서는 SPECweb96 소프트웨어를 이용하여 서버 소프트웨어에 스트레스를 주는 작업부하가 생성된다. 이러한 작업부하는 서버 소프트웨어가 접속 건수에 의해 포화되고 응답 시간이 급격히 저하될 때까지 서서히 증가된다. 이렇게 서버가 포화되는 시점을 그 웹 서버 소프트웨어가 지원하는 초당 최대 HTTP 동작의 수가 되며, 이 값이 SPECweb96 성능 지수가 된다. 예를 들어, <표 4>에 나타난 웹 서버의 SPECweb 96 성능 지수는 8,301 HTTP operations/sec가 된다.
SPECweb96의 작업부하 생성 방법에 대해서 먼저 살펴보자. SPECweb96의 작업부하는 여러 서버로부터의 로그(Log)를 분석하여 결정되었다. 먼저 NCSA(National Center for Supercomputing Applications)[19], HP, HAL사의 로그를 분석하고, 이를 Netscape과 CommerceNet사로부터 받은 요약 자료와 비교하였다. 이러한 로그들로부터 파일의 크기와 액세스 빈도와의 관계가 매우 유사하다는 것을 발견하였다. 즉, 꽤 많은 웹 액세스가 다소 작은 파일(적은 그래픽적인 요소, 짧은 텍스트 파일 등)을 요구하고, 대부분의 액세스는 수 KB의 크기를 갖는 파일(대부분 HTML 파일 및 그것의 주요 그래픽 등)을 요구한다. 그러나 그 이상 파일 크기가 증가하면 액세스 빈도는 점차 감소한다. 예를 들어, 다소 많은 액세스가 수십 KB의 크기를 갖는 HTML 파일이나 다른 문서 및 사진을 요구하지만, 100KB 이상의 큰 문서나 멀티미디어 파일은 매우 드물게 요구된다. 요약하면, 가장 일반적인 액세스 형태는 홈페이지 및 인덱스를 자주 브라우징 한 후, 가끔씩 매우 적은 수의 대용량 파일을 선택하여 다운로드 한다.
이러한 로그 데이터 분석을 기반으로, 네 가지 클래스(Class)의 파일들로부터 작업부하를 결정하였다. 즉, <표 1>에 나타난 것처럼 1KB 이하의 파일은 전체 액세스의 35%, 1KB에서 10KB 사이의 파일 액세스는 50%, 10KB에서 100KB 사이의 파일 액세스는 14%, 그리고 100KB에서 1MB 사이의 파일 액세스는 1%를 차지한다고 가정한다. 또한 각 클래스 당 9개, 총 36개의 크기를 갖는 파일을 가정한다(표 2 참조). 그러나, 한 클래스 내에서의 액세스는 균일하지 않고 중간 점을 중심으로 Poisson 분포를 갖는다고 가정한다. 이는 어떤 파일(예를 들어, index.html)이 다른 파일보다 자주 액세스 되고 또 다른 파일(예를 들어, mydog.gif)은 아주 드물게 액세스 되는 동작을 묘사하고 있다.
마지막으로, 서버의 throughput 기대치가 커짐에 따라 전체 파일 집합의 크기가 증가되어야 한다. 이는 웹 사이트의 인기가 올라갈수록 웹 사이트의 크기가 커진다는 것을 의미하는 것이 아니라, 고성능 서버의 필요성이 증대된다는 것을 의미한다. 특히, 두개의 작은 시스템이 두 배의 성능을 갖는 하나의 큰 시스템으로 대체될 수 있다고 가정하는 것이 불합리하지는 않지만, 두 시스템에서의 파일들이 다소 중복되고 파일 공간이 선형적으로는 증가하지 않는다는 점을 반영해야 한다. 따라서 SPEC에서는 전체 파일 집합의 크기가 서서히, 즉 throughput이 4배로 커질 때 전체 파일 집합의 크기는 2배로, 증가되도록 정한다. 또한 디렉토리의 수도 전체 파일 집합의 크기에 적용되었던 확장 함수 sqrt(throughput/5)*10를 따른다. Throughput 증가에 따른 디렉토리 수 및 필요한 디스크 공간 크기를 요약하면 <표 3>과 같다.
요약하면, 이러한 작업부하는 여러 명의 멤버에 대한 홈 페이지를 지원하는 시스템의 동작을 의미한다고 생각할 수 있다. 즉, 멤버 당 하나의 디렉토리를 갖는 디렉토리의 집합이 있으며, 각각은 4개의 클래스에 9개의 파일이 존재하는 총36개의 파일로 구성된다. 이러한 파일에 대한 액세스는 모든 디렉토리에 걸쳐 균등히 분산되지만, 각 디렉토리 또는 각 멤버의 홈 내에서는 파일 액세스가 언급한 함수에 따라 분산되므로 여러 개의 인기 있는 파일, 몇 개의 보통 파일, 다수의 비인기 파일을 만들어낸다.
SPECweb96의 내부 구현에 대해서 좀더 살펴보자. SPECweb96은 하나 이상의 클라이언트(또는 드라이버) 시스템이 SUT(System Under Test)에 대해서 HTTP GET 요구의 작업부하를 생성해 내도록 한다. SPECweb96은 이러한 드라이버를 수행하는 코드를 제공하며, SUT에서 수행되는 HTTP 서버는 시험되는 대상으로 시험자가 준비한다.
SPECweb96은 ANSI C와 Perl로 구현되었는데, 벤치마크 드라이버와 작업부하 생성기는 C로, 툴 환경, 보고서 작성기 등은 Perl5로 구현되었다. 특히, 이러한 언어들은 여러 UNIX나 NT 시스템에 쉽게 이식될 수 있다는 특징을 갖는다.
SPECweb96의 C 코드는 SPEC의 또 다른 네트워크 벤치마크-(SPEC SFS로도 알려진) LADDIS[6]-로부터 많은 영향을 받았다. LADDIS는 네트워크상에서 부하 생성 프로세스간 조정을 수행하는 프레임워크를 이미 제공하므로, SPECweb96에서는 LADDIS의 NFS 관련 코드만 HTTP 프로토콜 요구를 생성하는 코드로 대체하였다.
III. SPECweb 벤치마크 시험 결과
이미 언급한대로 SPECweb96 벤치마크의 시험 결과는 초당 최대 HTTP 동작의 수로 표현된다. 예를 들어, <표 4>는 IBM RS/6000[11] 상에서 Zeus 1.3.0[20]의 자세한 시험 결과를 나타낸다. <표 4>에 나타난 것처럼 각각의 기대되는 throughput 값에 대하여 4개의 클래스에 속하는 파일 응답 시간을 측정하고 각 클래스의 빈도에 따라 평균 응답 시간을 계산한다. 이렇게 계산된 평균 응답 시간이 급격히 증가하는 시점에서 HTTP 동작의 수는 8,301 HTTP operations/sec이며, 이 숫자가 주어진 웹 서버의 SPECweb96 성능 지수가 된다. 시험 환경에 대한 상세한 구성은 <표 5>에 요약하였다.
여러 상용 컴퓨터 시스템을 대상으로 한 벤치마크 시험 결과 중 일부를 <표 6>에 나타내었다. 특징적인 것은 유사한 하드웨어를 갖는 NCR과 IBM에서 사용된 웹 서버 소프트웨어에 따라서 SPECweb96 성능 지수가 다르게 나올 수 있다는 점이다.
IV. 맺음말
지금까지 상용 시스템 시장에서 새롭게 부상하고 있는 웹 서버의 성능을 평가하기 위한 최초의 표준 벤치마크 프로그램에 대하여 살펴 보았다. SPECweb96은 기본적인 HTTP GET 성능만을 측정하는 간단한 테스트이지만, 이러한 기본 서비스를 객관적으로 비교함으로써 사용자가 웹 서버 구입시 선택의 기준이 될 수 있다. SPEC에서는 SEPCweb96의 성공으로 좀 더 완벽한 벤치마크를 준비하고 있으며 머지 않은 장래에 발표될 예정이다. 또한 SPECweb96은 웹 서버 성능 비교를 위한 벤치마크라는 원래의 목적 외에도, 최근 들어 SPECweb96을 상용 작업부하로 활용한 컴퓨터 아키텍처 설계 등의 연구에서도 활용되고 있다[23].
<참 고 문 헌>
비씨파크 주식회사, 대표이사 : 박병철 개인정보보호책임자 : 박병철
사업자등록번호 : 114-86-19888 |
본사 : 서울특별시 서초구 서초대로73길, 42, 1307호
전자우편 : master@bcpark.net |
(전화전 이용문의 게시판 필수)
전화: 02-534-982구(09:00~18:00) |
팩스: 02-535-155구 |
긴급: 010-9774-988삼
ㆍ저작권안내 : 비씨파크의 모든 컨텐츠(기사)는 저작권법에 보호를 받습니다. 단, 회원들이 작성한 게시물의 권리는 해당 저작권자에게 있습니다. 비씨파크에 게재된 게시물은 비씨파크의 입장과 다를 수 있습니다. 타인의 저작물을 무단으로 게시, 판매, 대여 또는 상업적 이용시 손해배상의 책임과 처벌을 받을 수 있으며, 이에 대해 책임을 지지 않습니다.
ㆍ쇼핑몰안내 : 비씨파크는 통신판매중개자로서 상품 주문, 배송 및 환불의 의무와 책임은 각 판매 업체에 있습니다.
Copyright ⓒ 2000-2025 BCPARK Inc. All Right Reserved.