AB 사용법 - Apache Benchmarking

 

ab는 "Apache HTTP server Benchmarking tool"의 약어로서 아파치 서버의 응답속도를 측정하는 벤치마킹툴이다.

도메인이나 특정 페이지의 응답속도를 측정할 수 있다.

 

 

$./ab -V
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/


 

$./ab -h

Usage: ./ab 【options】 【http://】hostname【:port】/path
Options are:
    -n requests  Number of requests to perform : 벤치마킹을 위한 요청수
    -c concurrency Number of multiple requests to make : 하나의 요청당 체크할 다중 요구수 (기본값 : 1)
    -t timelimit Seconds to max. wait for responses : 제한시간
    -p postfile  File containg data to POST : POST 할 파일 지정
    -T content-type Content-type header for POSTing
    -v verbosity    How much troubleshooting info to print : 자세한 헤더정보 출력 (유용함)
    -w              Print out results in HTML tables : HTML 형태로 출력 (유용함)
    -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: zop'
                       Inserted after all normal header lines. (repeatable)
    -A attribute    Add Basic WWW Authentication, the attributes
                       are a colon separated username and password. : 사용자 인증을 요하는 페이지 체크시 아이디:비밀번호
    -P attribute    Add Basic Proxy Authentication, the attributes
                       are a colon separated username 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 served table.
    -S              Do not show confidence estimators and warnings.
    -g filename     Output collected data to gnuplot format file.
    -e filename     Output CSV file with percentages served
    -h              Display usage information (this message)

 

실행방법은  ./ab "http 주소"

* 주의 : 여기서 주의해야 할것은 위와같이 도메인명만 입력할때는 뒤에 "/"를 꼭 붙여야 한다.

 

그럼 실제로 네이버의 응답속도를 체크해자.

출력되는 내용은 아래와 같다.

 

【】# ab http://www.naver.com/
This is ApacheBench, Version 1.3d <$Revision: 1.69 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.naver.com (be patient).....done


; 아파치 버전

Server Software:        Apache                                            


; 도메인명

Server Hostname:        www.naver.com


; 웹서비스 사용 포트

Server Port:            80

 

; 초기문서가 위치하는 웹문서 root(서버내의 절대경로가 아님)

Document Path:          /


; 초기문서의 용량

Document Length:        72226 bytes

 

Concurrency Level:      1


; 응답속도(사실 이값만 확인하면 된다.)

Time taken for tests:   0.016 seconds


; 요구에 응답한 세션수

Complete requests:      1


; 요구에 응답실패한 세션수

Failed requests:        0


; 실패한 에러수

Broken pipe errors:     0


; 총 전송 바이트수

Total transferred:      72539 bytes


; 총 전송한 HTML 바이트수

HTML transferred:       72226 bytes


; 초당 응답요구수

Requests per second:    62.50 【#/sec】 (mean)


; 요구에 응답한 시간 (이값도 중요하다)

Time per request:       16.00 【ms】 (mean)


; 요구에 응답한 시간

Time per request:       16.00 【ms】 (mean, across all concurrent requests)

; 초당 전송 가능한 용량

Transfer rate:          4533.69 【Kbytes/sec】 received

 

=> 응용

1. 1회의 전송을 믿지 못하겠다는 분은 여러번 시도하여 그에대한 평균치를 얻을수 있다.

  ab -n 1 http://www.naver.com/

 

2. 다중세션으로 벤치마킹하여 더욱 신뢰높은 값을 얻는 방법

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

 

3. 응답속도를 KeepAlive 속성을 활성화하여 테스트하기

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

 

4. 측정 결과를 HTML 파일로 저장하기

 ab -n 1 -w http://www.naver.com/ > naver.com_test.htm

 

ab 명령어를 이용해서 조금 억지스럽지만 결과값으로 서버의 부하까지도 추측이 가능할 것이다.

 

* ab 실행파일은 아파치를 설치한 디렉토리/bin 에 있습니다.

#!/bin/sh

 


for A in `find . -type f -name '*.html' `;
do
     echo "$A "
     B="${A%.*}"
     C="$B.php"

     mv "$A"  "$C"

     echo "$A ..[ change ok!] ===> change Name :  $C"

done

간단하게 ssl csr파일 생성하기

 

보통 인증서를 발급해주는 업체에, 인증서 신청을 할 경우, 도메인에 대한 csr 파일을 요구하는 경우가 있습니다.
그럴경우, 서버에서 생성해주어야 하는데, 그 순서는 key 파일 생성, 생성된 key파일로 csr생성하는 순서입니다.
그리고, 최종적으로 인증업체에 넘겨준, csr로 생성된 crt(발급된 인증서) 파일을 적용하면 됩니다.

 

[첫번째  key 값 생성하기]

#자신이 원하는 디렉토리에 아래와 같은 형식으로 key 값을 생성.

key값 생성의 예 - openssl genrsa -des3 -out DOMAINNAME.key 1024

Generating RSA private key, 1024 bit long modulus
......................................++++++
..................++++++
e is 65537 (0x10001)
Enter pass phrase for DOMAINNAME.key:  #자신이 원하는 key값의 패스워드를 입력.

#생성된 key값의 상태를 확인할수있다.
key값 확인 - openssl rsa -noout -text -in DOMAINNAME.key


[두번째 csr 생성하기]

csr 생성의 예 - openssl req -new -key DOMAINNAME.key -out DOMAINNAME.csr

Enter pass phrase for DOMAINNAME.key:  # key값을 생성했을때 입력했던 패스워드를 입력.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) GB:KR # 나라를 나타내는 2문자의 ISO약어.
State or Province Name (full name) Berkshire:Seoul # 조직이 있는 시도.
Locality Name (eg, city) Newbury:Gangnam-gu # 조직이 있는 구동.
Organization Name (eg, company) My Company Ltd:BlueWeb Co., Ltd. # 조직의 법률상의 정식명칭.
Organizational Unit Name (eg, section) :system # 조직의 부서명.
Common Name (eg, your name or your server's hostname) :blueweb.co.kr # 발급받을 정확한 FQDN의 도메인.
Email Address :bluedomain@blueweb.co.kr

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password : # 엔터로 다음로 넘어간다, 생략 가능
An optional company name : # 엔터로 다음로 넘어간다, 생략 가능

# 생성한 csr 확인.
csr 확인 - openssl req -noout -text -in DOMAINNAME.csr

[아래와 같이 나오면 csr 생성 성공.

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=KR, ST=Seoul, L=Gangnam-gu, O=BlueWeb Co., Ltd., OU=system, 
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:ab:65:f6:a3:ec:91:f9:09:1c:a0:95:09:d2:f7:
                    9f:77:3d:35:19:00:82:f7:bb:da:9b:72:11:5d:87:
                    ee:ee:f5:23:f7:9d:30:94:0d:05:75:af:a9:21:fc:
                    18:24:c5:41:c5:a4:1c:4f:2d:ce:c8:e5:ed:86:70:
                    fc:47:7f:6e:41:37:ec:c3:4f:80:dc:99:98:fd:58:
                    c9:58:56:89:33:c8:03:e7:28:54:98:66:76:b3:ee:
                    7f:24:15:bc:91:8e:77:e8:06:04:fa:d3:7e:98:b2:
                    51:81:05:44:81:c3:76:84:2c:85:06:7d:e2:b1:9a:
                    52:79:cb:14:f7:cb:86:4c:59
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: md5WithRSAEncryption
        9f:be:d6:ee:4f:02:79:56:48:42:b0:79:be:98:24:dc:3b:85:
        37:95:75:9f:c9:4a:a7:03:10:96:84:c1:4b:ef:60:f5:3e:fe:
        e4:f1:d5:37:16:c8:77:0f:56:fd:99:71:e7:da:7c:c8:15:e7:
        00:51:90:81:67:e4:46:78:61:04:ca:24:0c:ee:fb:bd:46:04:
        09:85:c0:18:73:d4:27:c1:d2:7f:c2:8b:2a:38:f5:bc:00:25:
        d3:dd:ad:3f:8f:b2:39:ff:53:26:a3:3a:a1:f6:5e:9f:4d:28:
        7d:85:e3:ef:cc:c3:ce:80:ad:e6:43:91:cb:92:f8:1c:94:f3:
        df:8e

                     

[세번째 crt 생성하기]

마지막으로 crt를 발급하기이나, crt 파일은 보통 인증업체에서 발급해주므로
발급받은 인증서를 서버에 적용해주면 된다.
crt 생성의 예 - openssl req -new -x509 -days 365 -DOMAINNAME.key -out DOMAINNAME.crt

'배워서 남주자 > Linux 명령' 카테고리의 다른 글

[명령어] 기타 잡동사니  (0) 2020.05.10
[split] TAR 분할 압축  (0) 2020.05.10
CentOS7 - 네트워크 명령  (0) 2020.05.10
CentOS7 - 사용자  (0) 2020.05.10
YUM - (yellowdog updater modified)  (0) 2020.05.10

+ Recent posts