본문 바로가기

기술자료/기술운영자료

Apache Bench & gnuplot을 이용한 웹서버 성능 측정

Apache Bench &gnuplot을 이용한 웹서버 성능 측정

 

 

 

 

apache에는 ab(apachebench)라는 성능측정 도구가 포함되어 있습니다.

ab를 이용하면 특정 서버 또는 웹 프로그램의 성능을 테스트해 볼수 있습니다.

 

ab의 실행과 관련된 명령과 옵션은 아래와 같습니다.

 

Usage: ./ab[options] [http://]hostname[:port]/path

 

 

Options are:

 

 

    -n requests     Number of requests to perform

 

 

    -c concurrency  Number of multiple requests to make at a time

 

 

    -t timelimit    Seconds to max. to spend on benchmarking

 

 

                    This implies -n 50000

 

 

    -s timeout      Seconds to max. wait for each response

 

 

                    Default is 30 seconds

 

 

    -b windowsize   Size of TCP send/receive buffer, in bytes

 

 

    -B address      Address to bind to when making outgoingconnections

 

 

    -p postfile     File containing data to POST. Rememberalso to set -T

 

 

    -u putfile      File containing data to PUT. Rememberalso to set -T

 

 

    -T content-type Content-type header to usefor POST/PUT data, eg.

 

 

                   'application/x-www-form-urlencoded'

 

 

                    Default is 'text/plain'

 

 

    -v verbosity    How much troubleshooting info to print

 

 

    -w              Print out results in HTML tables

 

 

    -i              Use HEAD instead of GET

 

 

    -x attributes   String to insert as table attributes

 

 

    -y attributes   String to insert as tr attributes

 

 

    -z attributes   String to insert as td or th attributes

 

 

    -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)

 

 

    -H attribute    Add Arbitrary header line, eg.'Accept-Encoding: gzip'

 

 

                    Inserted after all normalheader lines. (repeatable)

 

 

    -A attribute    Add Basic WWW Authentication, theattributes

 

 

                    are a colon separatedusername and password.

 

 

    -P attribute    Add Basic Proxy Authentication, theattributes

 

 

                    are a colon separatedusername and password.

 

 

    -X proxy:port   Proxyserver and port number to use

 

 

    -V              Print version number and exit

 

 

    -k              Use HTTP KeepAlive feature

 

 

    -d              Do not show percentiles servedtable.

 

 

    -S              Do not show confidence estimatorsand warnings.

 

 

    -q              Do not show progress when doingmore than 150 requests

 

 

    -g filename     Output collected data to gnuplot formatfile.

 

 

    -e filename     Output CSV file with percentages served

 

 

    -r              Don't exit on socket receiveerrors.

 

 

    -h              Display usage information (thismessage)

 

 

 

 

 

주로 사용되는 옵션은 -c(동시접속 클라이언트 갯수), -n(request 횟수) 입니다.

 

 

테스트 예시

 

 

 

#/usr/local/apache/bin/ab -c 10 -n 10 http://192.168.2.27/

 

 

그림입니다.
원본 그림의 이름: mem00000d30007d.tmp
원본 그림의 크기: 가로 594pixel, 세로 663pixel

 

 

 

테스트 결과 해석

 

 

 Server Software

 아파치 버전을 표시 

 Server Hostname

 특정사이트의 이름

 Server Port

 웹서비스 사용 포트 번호

 Document Path

 초기 문서가 존재하는 웹문서 root위치

 Time take for tests

 응답시간(매우 중요한 결과 값)

 Document Length

 초기문서의 크기

 Complete requests

 요구에 응답완료한 세션 수

 Failed requests

 요구에 응답실패한 세션 수

 Broken pipe errors

 실패한 에러 수

 Total transferred

 총 전송 바이트 수

 HTTP transferred

 총 전송한 HTML 바이트 수

 Requests per second

 초당 응답 요구 수

 Time per request

 요구에 응답한 시간(단위 micro second, 중요한 결과값)

 Time per request

 요구에 응답한 시간

 Transfer rate

 초당 전송 가능한 용량

 

 

테스트 방법

 

 

-n을 적당한 선에서 잡고(500~ 1000 정도) -c값을 늘려가면서 테스트 진행,

Failed가 0보다 커지는시점을 잡으면 그때의 –c 값이 현재 서버에 적당한 동시접속 값입니다.

결과를 참조 하여 아파치 튜닝을 하면 좋다고 합니다

 

 

 

 

gnuplot

 

 

gnuplot은 명령행 입력 방식의 그래프 작성 도구 입니다.

간단한 명령으로 그래프를 플롯할 수 있기에 널리 사용되는 도구 입니다.

 

위에서 설명한 apache bench에는 gnuplot에서 읽을 수 있는 데이터 값으로

측정 결과를 출력하는 기능이 있어 ab와 gnuplot의 조합이 많이 사용되고 있습니다.

 

gnuplot다운로드

 

 

http://www.gnuplot.info/download.html

 

해당 문서에서는 windows용 프로그램을 다운로드 받았습니다.

 

 

기본적인 사용 방법

 

 

gnuplot> plot "파일명"

 

 

ab와 gnuplot을 활용한 벤치마크 자료 도출 방법

 

 

 

#ab -n 100 -c 100 -g test.dat http://192.168.2.27/

 

gnuplot> plot "d:\asdf.dat"using 10 smooth sbezier with lines title "test :"

 

 

그림입니다.
원본 그림의 이름: mem00000d30007e.tmp
원본 그림의 크기: 가로 740pixel, 세로 399pixel

 

 

 

 

여러개의 결과를 종합하여 비교할 수 있게 출력 가능합니다.

 

 

 

*아래는 web server 테스트진행 중 도출된 값입니다.

 

gnuplot> set title "Web Server Testusing Apache Bench"

gnuplot> set size 1,1

gnuplot> grid y

gnuplot> set xlabel "Request"

gnuplot> set ylabel "ResponseTime"

gnuplot> plot "d:\ginx.dat"using 10 smooth sbezier with lines title "nginx-1.4.1:","d:\apache.dat" using 10 smooth sbezier with lines title"apache-2.4.4:" 

 

 

그림입니다.
원본 그림의 이름: mem00000d30007f.tmp
원본 그림의 크기: 가로 740pixel, 세로 399pixel

그림입니다.
원본 그림의 이름: mem00000d300072.tmp
원본 그림의 크기: 가로 120pixel, 세로 68pixel

한국인터넷진흥원 보호나라에서 운영하는 정보보호 TV를 안내하여드립니다.

 

악성코드가 왜 위험한지, 악성코드에 감염되면 어떠한 일이 일어날수 있는지에 대한 설명을 알수있습니다.

또한, 실생활에서 일어날수있는 상황을 재현하고, 그에 대한 대책은 어떠한게 있는지 방송에 소개된 한국인터넷진흥원의 시연영상을 한곳에서 보실수 있습니다.

 

영상들을 보시고 개인정보나 기업정보에 대하여 관심을 고취시킬수 있는 기회가 되었으면 합니다.

 

영상바로가기 :

http://broadcast.boho.or.kr/UserView/UserView.jsp?seqno=656&keyword=&option=title&num=2

 

그림입니다.
원본 그림의 이름: mem00000d300073.tmp
원본 그림의 크기: 가로 90pixel, 세로 54pixel

WAPPLES 

 

인터넷을 통한 웹 환경이 발달하면서 항상 개방되어 있는 웹을 이용한 공격이 일반화·집중화 되고 있습니다. 웹의 특성상 방화벽을 설치해도 사용되는 포트는 항상 개방해야 하기 때문에 공격에 노출되는 문제점이 있습니다.

또한 별도의 해킹 툴 없이도 브라우저 상에서 공격이 가능하고, 이외에 수많은 방법들이 존재하여 초보자도 손쉽게 수행할 수 있어 웹 공격에 대한 위협은 나날이 증가하고 있습니다.

 

전체 해킹 가운데 75%가 웹 어플리케이션에 대한 공격이고, 300개 사이트의 웹을 공격해본 결과 97% 이상의 공격 성공률을 보여준다는 가트너 그룹의 발표는 웹 어플리케이션 보안의 취약성과 필요성을 보여주고 있습니다.

    

 

그림입니다.
원본 그림의 이름: mem00000d30006d.tmp
원본 그림의 크기: 가로 247pixel, 세로 218pixel

 

이러한 피해를 줄이고자 WAPPLE은 지능형 논리 분석 웹어플리케이션 방화벽으로, 인간의 사고구조와 동일한 방식으로 웹 트래픽을 분석하여 공격성 여부를 판단하고 대응합니다. 관리자는 RULE에 대한 Security Level 설정만 수행하면 매우 편리한 운영을 할 수 있습니다.

 

기대효과

 

1. 사이트 공격 탐지 및 차단

2. 웹 사이트 위조, 변조 방지

3. 웹 공격을 통화 정보유출 방지(소유하고 있는 정보의 보호)

4. 실시간 모니터링 기능 제공, 다양한 정보 제공

5. 서비스 중단을 일으키지 않은 높은 가용성 제공

6. 쉽고 편리한 설정과 운영

 

 

WAPPLES MS

 

WAPPLES MS는 여러대의  WAPPLES를 통합관리하는 Management System 입니다.

WAPPLES 동기화 및 로그관리

통합 정책 설정, 온라인 업데이트 제어, 그룹 단위 WAPPLES 간 동기화를 수행합니다.

그림입니다.
원본 그림의 이름: mem00000d30006e.tmp
원본 그림의 크기: 가로 650pixel, 세로 321pixel 

 

 

구성

 

In-line 모드 구성 방식

 

Inline 모드는 WAPPLES이 네트워크 라인 사이에서 일종의 다리역할로 동작하도록 합니다. 이러한 구성을 브릿지(Bridge) 모드라고도 합니다. Inline 모드로 구성 시에는 외부에 WAPPLES의 존재가 노출 되지 않습니다. 기존 네트워크 설정의 변경 없이 WAPPLES이 네트워크의 중간 지점에 위치하게 되고, 웹 트래픽의 출발지 IP 주소를 변경하지 않고 웹 서버에 전달하여 웹 공격의 주체를 정확하게 추적할 수 있습니다. HTTP 이외의 모든 트래픽이 통과하므로 전체 통신량을 고려해야 합니다.

 

그림입니다.
원본 그림의 이름: mem00000d30006f.tmp
원본 그림의 크기: 가로 650pixel, 세로 290pixel




Proxy(Reverse Proxy) 모드 구성 방식

 

Proxy 모드는 WAPPLES을 일반적인 웹 Proxy 서버와 동일한 구성으로 위치시킵니다.Proxy 모드로 구성 시에는 WAPPLES의 보호를 받는 웹서버들이 외부에 노출되지 않습니다. 외부로부터의 모든 접속은 WAPPLES가 제공하는 Proxy IP를 통해서 웹서버로 전달됩니다. 이를 위하여, DNS 정보 변경과 같이 기존 네트워크 환경을 변경해야 합니다. HTTP 트래픽만 통과하게 되어 보다 많은 웹 사이트 보호가 가능합니다.


그림입니다.
원본 그림의 이름: mem00000d300070.tmp
원본 그림의 크기: 가로 650pixel, 세로 290pixel

 

 

주요 웹 보안 기능

 

1. OWASP Top 10 취약점국정원 8대 취약점을 방어

2. 알려지지 않은 웜 공격 및 이상 접근 차단

3. 다양한 대응 방법을 선택할 수 있는 능동적인 웹 보안 기능

4. 자동 학습 기능과 positive 정책에 따른 접근 제어를 제공

5. 대쉬보드 및 각종 통계, 로그를 그래프 및 차트로 분석

6. SSL 복호화 지원 및 Inline 방식, Proxy 방식의 유연한 네트워크 구성, 이중화 구성 지원

7. 즉각적인 장애 대응을 위한 Watch dog기능 제공

8. 만약의 장애 발생시 Bypass mode를 제공하며 장애시의 운영 로그 기록

 

 

 

도입 사례

 

그림입니다.
원본 그림의 이름: mem00000d300071.tmp
원본 그림의 크기: 가로 650pixel, 세로 310pixel

 

도입 효과

 

1. 지속적으로 취약성 점검을 받아 왔으나, 웹방화벽 도입을 통해서 새로운 취약점 및 공격을 사전에 차단

2. 네트워크 방화벽 없이 웹방화벽만으로 웹 서버 보호

3. 상시 모니터링을 통한 공격 시도 탐지

4. 공격 차단을 통해 웹 서버의 가용성 확보

 

 

출처 : http://www.pentasecurity.com/

'클린 파이프' , CDN 기술 활용...DDoS 공격 효과적 방어 가능

 

지난 7월 7일 한국과 미국을 타깃으로 한 대규모 DDoS(분산서비스거부) 공격에 속수무책으로 당한 뒤, 정보보안을 위해 보안센터 및 보안 프로그램이 강조되어왔다.
이에 반가운 소식이 지난 8월 말에 들려왔다. 인도를 기반으로 성장한 성장한 타타커뮤니케이션(www.tatacommunications.com, 이하 타타)은 인도의 주요 네트워크 업체에서 CDN기술을 이용한 DDoS 공격 방어 시스템(인터넷 클린 파이프)을 선보여 보안계의 주목을 받고 있다.

 

그림입니다.
원본 그림의 이름: mem00000d300060.tmp
원본 그림의 크기: 가로 540pixel, 세로 320pixel

  

CDN이란: 사용자에게 보다 빠르고 안정적으로 컨텐츠를 배포하는 서비스로 정의된다. CDN(Content delivery network)은 ISP(internet service provider)의 네트워크 하단에 여러 대의 캐시서버(임시저장장치)를 설치, CP(Contents Provider)가 제공하는 컨텐츠를 이 캐시서버에 미리 옮겨놓고 사용자의 수요가 있을 때 그 컨텐츠를 사용자에게 전달해 주는 시스템. CDN을 통해 컨텐츠를 사용자 가까이에 미리 옮겨놓음으로써 전송속도를 향상시키고, 데이터전송시 중간과정에서 발생할 수 있는 속도 저하와 데이터 손실을 막을 수 있다.

CDN서비스는 수많은 네트워크가 연결된 인터넷에서 컨텐츠 공급의 포화로 적체현상이 발생하거나 데이터가 손실됨에 따라 컨텐츠를 재전송해야 하는 현상을 극복하기 위해 떠오른 기술.

 

CDN(Content delivery network) 기술을 이용한 DDoS 방어 시스템인 ‘클리 파이프’서비스는 아버네트웍스의 DDoS 공격 방어장비를 기반으로 타타의 글로벌 네트워크 시스템을 이용해 봇넷들의 공격을 미리 감지하고 공격 트래픽들을 걸러 최종 유저들은 클린한 트래픽만 접할 수 있도록 하는 서비스이다.
 
관계자는 "하루에 전세계적으로 100만건 이상의 DDoS 공격이 이루어지고 있다. 타타 고객사들에게도 1~4G 가량의 DDoS 공격이 들어오곤 한다”며 “클린 파이프는 어텍 트래픽을 걸러내서 깨끗하고 안정적인 인터넷 서비스를 제공하고 웜 바이러스 등도 사전에 차단해 유저들의 컴퓨팅 환경을 클린하게 만들어 줄 것이며, 글로벌 네트워크를 이용해 만약 미국에서 DDoS 공격이 발생하면 해당 지역에서 바로 공격을 감지하고 방어해 정화된 트래픽만 제공하게 된다. 엔드유저 가까이에서 감지하고 이를 방어하려면 이미 서비스 장애가 발생하는 등 문제가 발생하기 때문에 공격 진원지에서부터 공격을 방어해 깨끗한 트래픽을 유저들에게 제공하는 서비스”라고 강조했다.

 

즉, 클린 파이프는 리얼타임으로 공격 진원지를 알 수 있고 어느 지역을 공격하는지도 감지되며, 클린 파이프 서비스를 이용한다면 공격이 차단된 안전한 트래픽을 이용해 공격에 의한 서버 다운과 서비스 장애를 겪지 않을 수 있다고 한다.

 

또한 “이 서비스에 대한 설치와 구현은 타타에서 담당하며 전용 장비지원은 아버네트워크에서 하고 있다. 또한 대형 인터넷 서비스 제공자뿐만 아니라 중소 인터넷 기업 등도 설치비용을 타타에서 부담하고 사용한 만큼만 비용지불을 하면 되기 때문에 DDoS 공격 방어를 위한 기업들의 코스트 부담도 줄어들 것”이라고 덧붙였다. 또한 24G 가량의 DDoS 공격까지 차단할 수 있다고 말하고 있다. 

 

출처 : http://www.boannews.com/media/view.asp?idx=18608&page=1&kind=1&search=title&find=CDN