1
1
#! /bin/sh
2
2
3
- DNSPERF_BINARY=" /usr/local/ bin/dnsperf"
3
+ DNSPERF_BINARY=" /usr/bin/dnsperf"
4
4
5
- # -----------------------------------------------------------------------------
6
- # Command output of "dnsperf --help"
7
- # -----------------------------------------------------------------------------
8
- #
9
- # DNS Performance Testing Tool
10
- # Version 2.14.0
11
- #
12
- # Usage: dnsperf [-f family] [-m mode] [-s server_addr] [-p port]
13
- # [-a local_addr] [-x local_port] [-d datafile] [-c clients]
14
- # [-T threads] [-n maxruns] [-l timelimit] [-b buffer_size]
15
- # [-t timeout] [-e] [-E code:value] [-D]
16
- # [-y [alg:]name:secret] [-q num_queries] [-Q max_qps]
17
- # [-S stats_interval] [-u] [-B] [-v] [-W] [-h] [-H] [-O]
18
- # -f address family of DNS transport, inet or inet6 (default: any)
19
- # -m set transport mode: udp, tcp, dot or doh (default: udp)
20
- # -s the server to query (default: 127.0.0.1)
21
- # -p the port on which to query the server (default: udp/tcp 53, DoT 853 or DoH 443)
22
- # -a the local address from which to send queries
23
- # -x the local port from which to send queries (default: 0)
24
- # -d the input data file (default: stdin)
25
- # -c the number of clients to act as
26
- # -T the number of threads to run
27
- # -n run through input at most N times
28
- # -l run for at most this many seconds
29
- # -b socket send/receive buffer size in kilobytes
30
- # -t the timeout for query completion in seconds (default: 5)
31
- # -e enable EDNS 0
32
- # -E send EDNS option
33
- # -D set the DNSSEC OK bit (implies EDNS)
34
- # -y the TSIG algorithm, name and secret (base64)
35
- # -q the maximum number of queries outstanding (default: 100)
36
- # -Q limit the number of queries per second
37
- # -S print qps statistics every N seconds
38
- # -u send dynamic updates instead of queries
39
- # -B read input file as TCP-stream binary format
40
- # -v verbose: report each query and additional information to stdout
41
- # -W log warnings and errors to stdout instead of stderr
42
- # -h print this help
43
- # -H print long options help
44
- # -O set long options: <name>=<value>
45
- #
46
- # -----------------------------------------------------------------------------
47
-
48
- ADDRESS_FAMILY=" ${ADDRESS_FAMILY:- any} "
49
- TRANSPORT_MODE=" ${TRANSPORT_MODE:- udp} "
50
- DNS_SERVER_ADDR=" ${DNS_SERVER_ADDR:- 10.100.0.10} "
51
- DNS_SERVER_PORT=${DNS_SERVER_PORT:- 53}
52
- DNSPERF_RECORDS_INPUT=" /opt/records.txt"
53
- MAX_CLIENTS=" ${MAX_CLIENTS:- 1} "
54
- MAX_THREADS=" ${MAX_THREADS:- 1} "
55
- MAX_TEST_SECONDS=" ${MAX_TEST_SECONDS:- 60} "
56
- TIMEOUT_FOR_QUERY=" ${TIMEOUT_FOR_QUERY:- 5} "
57
- MAX_QPS=" ${MAX_QPS:- 1000} "
5
+ DNS_SERVER_ADDR=$( /usr/bin/awk ' /^nameserver/{print$2}' /etc/resolv.conf)
58
6
59
7
${DNSPERF_BINARY} -h 2>&1 | head -n 2
60
8
@@ -63,18 +11,11 @@ if [ ! -f "${DNSPERF_RECORDS_INPUT}" ]; then
63
11
exit 1
64
12
fi
65
13
66
- echo " [debug] bench start"
14
+ echo " [debug] dnsperf benchmark start"
15
+ echo " [debug] DNS_SERVER_ADDR -> ${DNS_SERVER_ADDR} "
16
+ echo " [debug] EXTRA_ARGS -> ${EXTRA_ARGS} "
17
+ echo " [debug] DNSPERF_RECORDS_INPUT -> ${DNSPERF_RECORDS_INPUT} "
67
18
68
19
while true ; do
69
- ${DNSPERF_BINARY} \
70
- -f ${ADDRESS_FAMILY} \
71
- -m ${TRANSPORT_MODE} \
72
- -s ${DNS_SERVER_ADDR} \
73
- -p ${DNS_SERVER_PORT} \
74
- -d ${DNSPERF_RECORDS_INPUT} \
75
- -c ${MAX_CLIENTS} \
76
- -T ${MAX_THREADS} \
77
- -l ${MAX_TEST_SECONDS} \
78
- -t ${TIMEOUT_FOR_QUERY} \
79
- -Q ${MAX_QPS}
20
+ ${DNSPERF_BINARY} -s ${DNS_SERVER_ADDR} -d ${DNSPERF_RECORDS_INPUT} ${EXTRA_ARGS}
80
21
done
0 commit comments