티스토리 뷰
queryperf란?
DNS 성능테스트툴로 다량의 도메인 쿼리를 지속적으로 발생시킬수 있는 도구이다.
동작방식은 -d 옵션을 통해 입력받은 domain (record 포함)에 대해 -q 옵션에 맞는 쿼리 갯수만큼 쿼리를 발생시키며 -t 옵션에 맞는 timeout 만큼 대기하고 대기시간동안 응답이 발생하지 않는 경우 "[Timeout] msgid"을 출력한다.
설치 및 수행방법
bind 소스를 다운로드 받아서 컴파일 수행시 툴이 만들어진다.
web browser 혹은 ftp command를 통해 다운로드를 받는다.
[root@localhost /]# ftp ftp.isc.org
ftp> cd isc/bind/9.9.1
ftp> ha
ftp> bi
ftp> mget *.gz
다운로드 받은 소스파일을 압축해제후 /contrib/queryperf 폴더로 이동하면 관련 소스를 확인할 수 있다.
해당 소스를 configure, make 수행하여 실행파일을 컴파일 한다.
컴파일된 파일을 통해 bind performance test를 수행할 수 있다.
<bind_folder>/util 폴더내를 확인해 보면 performance test에 사용될 domain을 만드는 스크립트가 존재하며 해당 스크립트를 통해 다량의 domain을 생성한다. (스크립트가 python으로 작성되어 있기 때문에 python이 설치되어 있어야 한다.)
[root@localhost queryperf]# chmod 755 util/gen-data-queryperf.py
[root@localhost queryperf]# python util/gen-data-queryperf -n 10 -p 100 -t com > test
이후 ./queryperf 수행시 옵션을 다음과 같이 수행하여 performance test를 수행한다.
[root@localhost queryperf]# ./queryperf -s 127.0.0.1 -d util/test -q 5000 -l 60 -t 5
[root@localhost /]#
- (-s) 옵션은 네임서버(performance를 측정할)를 지정한다.
- (-d) 옵션은 테스트에 사용될 domain 정보가 존재하는 파일을 지정한다.
- (-q) queries per second 로 초당 발생 쿼리를 나타낸다.
- (-l) 지정된 시간(second)만큼 반복수행한다.
- (-t) timeout을 지정(기본은 5초 이다.)
위 옵션을 사용하여 스크립트를 만들면 다량의 도메인쿼리를 지속적으로 발생시킬수 있다. (do while 문과 같은)
결과는 다음과 같은 형식으로 출력된다.
[Status] Processing input data
[Status] Sending queries (beginning with 127.0.0.1)
[Status] Testing complete
Statistics:
Parse input file: once
Ended due to: reaching end of file
Queries sent: 100000 queries
Queries completed: 96099 queries
Queries lost: 3901 queries
Queries delayed(?): 0 queries
RTT max: 0.090539 sec
RTT min: 0.000346 sec
RTT average: 0.013343 sec
RTT std deviation: 0.007328 sec
RTT out of range: 0 queries
Percentage completed: 96.10%
Percentage lost: 3.90%
Started at: Tue Aug 20 17:55:52 2013
Finished at: Tue Aug 20 17:56:17 2013
Ran for: 24.417848 seconds
Queries per second: 3935.604808 qps
참고로 수행시 다음과 같은 메세지가 출력될수 있는데 해당 메세지는 응답을 못받았거나 timeout 시간을 초과한 경우라고 볼수 있다. (실제 동작방식은 -q옵션에 맞는 쿼리를 발생시키고 -t옵션에 맞게 대기하고 다시 -q에 맞게 쿼리를 발생)
[Timeout] Query timed out: msg id 476
- msg id (domain 정보가 담긴 파일의 line number)에 대한 응답이 timeout 되었음을 뜻한다.
참고사이트
- http://www.serverchk.com/dnspro/dns290.htm
- Total
- Today
- Yesterday
- ceph
- socket
- open policy agent
- Jenkinsfile
- aquasecurity
- jenkins
- nginx-ingress
- vmware openstack
- boundary ssh
- minikube
- kubernetes install
- GateKeeper
- openstack backup
- OpenStack
- Terraform
- crashloopbackoff
- mattermost
- minio
- azure policy
- hashicorp boundary
- Helm Chart
- macvlan
- K3S
- wsl2
- ansible
- DevSecOps
- kubernetes
- metallb
- openstacksdk
- kata container
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |