강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
ab유틸리티 파워활용 1편
조회 : 7,643  


문서제목 : ab유틸리티 파워활용 1

작성 : 리눅스포털(www.superuser.co.kr)수퍼유저코리아 성수

아파치의 응답속도를 측정하여 웹서비스의 속도를 확인할 수 있는 ab유틸리티에 대해서 알아도보록 하겠습니다. 먼저 ab유틸리티의 소개를 하도록 하겠습니다.

ab유틸리티는 “Apache HTTP server Benchmarking tool”약어로서 아파치서버의 응답속도를 측정하는 밴치마킹툴입니다. ab라는 툴을 이용하여 아파치의 응답속도를 테스트하고 그 결과를 다양한 방법으로 확인할 수 있습니다.

명령어위치 : /usr/local/apache/bin/ab
(RPM
설치시 : /usr/bin/ab)

이 툴은 현재 설치된 아파치서버의 실행속도 및 성능테스트를 위해서 제우스테크널리지(Zeus Technology Ltd, http://www.zeustech.net/) Adam Twiss가 개발한 툴입니다. 저작권은 아파치그룹(www.apache.org)과 제우스테크널리지에서 동시에 보유하고 있습니다. 아파치를 설치하고 나면 기본적으로 설치되므로 별도의 설치과정없이 바로 사용할 수 있습니다. 또한 이 툴을 이용하면 아파치 웹서버의 초당 처리능력을 확인할 수 있습니다.

참고로 현재 필자는 아파치를 /usr/local/apache에 설치를 했기 때문에 ab명령어의 위치는 /usr/local/apache/bin에 있습니다. 만약 여러분께서 사용하시는 아파치가 RPM으로 설치되어있다면 /usr/bin/ab에 위치하고 있습니다.

현재 사용중인 ab유틸리티의 버전을 확인하시려면 다음 예와 같이 "ab -V"라는 명령어를 실행해 보시면 됩니다.

-V옵션을 사용하시면 설치되어 있는 ab의 버전을 확인하실 수 있습니다. 아래 결과는 현재 필자가 사용하고 있는 ab의 버전이 2.0.41라는 것을 표시하고 있습니다.

지금까지는 ab유틸리티의 소개를 설명드렸습니다. 이제 부터 ab유틸리티의 실제 사용방법과 실제사용예들을 설명드리겠습니다.

ab를 이용하면 측정하고자하는 특정사이트의 다음과 같은 정보를 확인할 수 있습니다. , 아래의 예는 ab유틸리티의 가장 간단한 사용예로서 www.superuser.co.kr웹사이트의 응답속도와 유용한 정보들을 확인하는 예입니다. 다음예와 같이 리눅스 프롬프트에서 " ab http://www.superuser.co.kr/" 명령행을 실행합니다.

ab http://www.superuser.co.kr/

위의 명령행의 결과화면을 보시면 다음과 같은 결과를 확인할 수 있습니다.

A. Server Software B. 아파치(아파치) 버전을 표시해 줌.

A. Server Hostname B. 특정사이트의 이름(도메인명)

A. Server Port B. 웹서비스 사용포트번호(대부분 80번 포트를 사용함)

A. Document Path B. 초기 문서가 존재하는 웹문서root위치(서버내의 절대경로 아님)

A. Document Length B. 초기문서(대부분 index.html, index.htm)의 용량크기

A. Time taken for tests B. 응답시간(매우 중요한 결과값임)

A. Complete requests B. 요구에 응답완료한 세션수

A. Failed requests B. 요구에 응답실패한 세션수

A. Broken pipe errors B. 실패한 에러수

A. Total transferred B. 총 전송바이트수

A. HTML transferred B. 총 전송한 HTML 바이트수

A. Requests per second B. 초당응답요구수

A. Time per request B. 요구에 응답한 시간(단위, micro second, 중요한 결과임)

A. Time per request B. 요구에 응답한 시간(단위, micro second)
A.
Transfer rate B. 초당전송가능한 용량

, 이번 장에서는 두가지를 목표로 하고 있는데 첫번째가 ab의 활용법을 익히는 것이며 두번째는 ab의 실행결과로 출력되는 값들의 정확한 해석입니다. 따라서 위의 예에서 출력된 결과를 정확하게 이해하기 위해서는 결과의 각 항목들을 분명히 알아두셔야 합니다. , 이제 ab의 보다 풍부한 예를 보도록 하겠습니다.

이번에는 아파치 밴치마킹툴인 ab를 이용하여 특정 웹사이트의 응답속도를 1회 측정하는 예를 보겠습니다.

다음은 수퍼유저코리아(www.superuser.co.kr)웹서버의 응답속도를 측정한 것입니다.

다음 명령은 리눅스 프롬프트에서 " ab -n 1 http://www.superuser.co.kr/"를 실행한 것입니다.

ab -n 1 http://www.superuser.co.kr/

참고로 사이트URL의 마지막에는 반드시 "/"가 들어가야 함에 주의하시기 바랍니다. 여기서 사용한 옵션 -n은 측정을 위한 웹페이지 요청수를 의미합니다. "-n 1"이라고 한 것은 지정한 URL을 한번의 요청만으로 결과를 표시한다는 의미입니다.

, 위의 결과를 보시면 www.superuser.co.kr웹사이트의 기본적인 정보와 함께 응답속도를 확인할 수 있습니다.

이번에는 아파치 밴치마킹 유틸리티 ab를 이용하여 특정 웹사이트 다중 세션으로 응답속도를 측정해 보도록 하겠습니다.

ab유틸리티 실행시에 -c옵션을 사용하면 한번에 수행할 다중 요구수를 지정할 수 있습니다.

지정하지 않는다면 기본값은 1이 됩니다. 테스트시에 -c 30이라고 주었으며, 결과를 보시면 “concurrency Level 30이라는 것을 확인할 수 있을 것입니다. , 동시에 다중세션을 테스트한 것이며 그 결과를 확인 할 수 있습니다. 결과값의 분석은 앞에 설명된 내용과 비교하면서 보시기 바랍니다.

ab -c 30 http://www.yahoo.com/

[녹음]

, 위의 결과를 보시면 www.yahoo.com웹사이트의 응답속도를 ab유틸리티로 측정을 하면서 다중세션테스트를 위하여 “-c 30”옵션을 사용 하였습니다. 하나의 세션으로 응답속도를 측정하는 것 보다는 이번 예와같이 다중 세션으로 응답속도를 측정하는 것이 보다 신뢰있는 결과라고 할 수 있습니다.

이번에는 아파치 밴치마킹툴 ab를 이용하여 특정 웹사이트의 응답속도를 KeepAlive속성 활성화하여 테스트하는 실제 예를 보도록 하겠습니다.

ab명령어에 -k옵션을 사용하시면 KeepAlive를 활성화하여 테스트합니다.

KeepAlive란 한 개의 세션에서 여러 개의 요구를 할 경우 동일한 세션을 유지하는 것을 의미하며 이 옵션을 사용하면 KeepAlive를 활성화하여 테스트합니다. 기본값은 KeepAlive가 비활성화된 상태입니다.

이제 리눅스 쉘프롬프트에서 "ab -k http://www.yahoo.com/"을 실행해 보시기 바랍니다.

ab -k http://www.yahoo.com/

, 이번 예에서는 ab유틸리티로 www.yahoo.com웹사이트의 응답속도를 측정하면서 KeepAlive속성을 활성화하기 위하여 -k옵션을 사용한 것입니다.

이번에는 ab유틸리티를 이용하여 특정 웹사이트의 응답속도 테스트를 -t옵션을 사용해 보도록 하겠습니다.

ab유틸리티에 -t옵션을 사용하시면 허용되는 최대시간을 초단위로 설정하여 테스트할 수 있습니다. 내부적으로 최대 50000으로 설정이 되어 있습니다.

, 이제 ab유틸리티를 실행하면서 t옵션의 값으로 10을 지정하였습니다.

ab -c 30 -n 10 -t 10 http://www.yahoo.com/

아래의 결과를 보시면 테스트에서 사용한 옵션은 -c 값을 30으로하고, -n 값을 10으로 하였으며 -t값을 10으로 설정 하였습니다. 즉 테스트 결과가 오래 걸릴 것을 예상하여 최대허용 시간을 10초로 지정한 것입니다.

위의 결과를 보시면 Connect 시간과 Processing 시간 그리고 Waiting시간, Total시간이 각각 최소(min), 평균(mean), 최대(max)시간으로 분석되어 출력되어 있습니다. 이런 결과치를 최대한 활용해 보시면 굉장히 좋은 분석결과를 얻으실 수 있을 것입니다. , 위의 예는 ab유틸리티로 www.yahoo.com웹사이트의 응답속도 측정의 다양한 결과를 위하여 -c, -n, -t의 값을 각각 30, 10, 10으로 주어서 테스트한 것입니다.

제공 : 리눅스포털(www.superuser.co.kr)수퍼유저코리아


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1433


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
수퍼유저코리아