3 [ -z "$port" ] && port
=5300
5 [ -z "$limit" ] && limit
=100000
7 [ -z "$threads" ] && threads
=2
9 [ -z "$mthreads" ] && mthreads
=100
11 : ${RECURSOR:="../pdns/recursordist/pdns_recursor"}
12 : ${CSV:="top-1m.csv"}
15 : ${DNSBULKTEST:="../pdns/dnsbulktest"}
24 rm -f recursor.pid pdns_recursor.pid
25 /usr
/bin
/time --format '%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
26 %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
27 <measurement><name>user CPU seconds</name><value>%U</value></measurement>
28 <measurement><name>system CPU seconds</name><value>%S</value></measurement>
29 <measurement><name>wallclock seconds</name><value>%e</value></measurement>
30 <measurement><name>%% CPU used</name><value>%P</value></measurement>
31 ' ${RECURSOR} --daemon=no
--local-port=$port --socket-dir=.
/ --trace=$TRACE --config-dir=.
--max-mthreads=$mthreads --query-local-address6="${QLA6}" --threads=$threads --disable-packetcache > recursor.log
2>&1 &
36 echo === First run with limit
=$limit threads
=$threads mthreads
=$mthreads ===
37 ${DNSBULKTEST} --www=false
-qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
38 # rerun 1 with hot cache
40 echo === Second run with limit
=$limit threads
=$threads mthreads
=$mthreads ===
41 ${DNSBULKTEST} --www=false
-qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
42 # rerun 2 with hot cache
44 echo === Third run with limit
=$limit threads
=$threads mthreads
=$mthreads ===
45 ${DNSBULKTEST} --www=false
-qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
48 echo "=== RECURSOR LOG ==="
50 echo "=== END RECURSOR LOG ==="
51 kill $
(cat pdns_recursor.pid
)
56 mkdir
-p recursor-bulktest
57 rm -f failed_tests passed_tests
58 touch failed_tests passed_tests
61 ANANSWER
=$
[(100*(${DBT_QUEUED}-${DBT_ERRORS}-${DBT_TIMEOUTS}) )/${DBT_QUEUED}]
63 if [ "$ANANSWER" -ge $THRESHOLD ]
65 echo recursor-bulktest
>> passed_tests
68 echo recursor-bulktest
>> failed_tests
72 echo "$DBT_OKPERCENTAGE% of domains resolved" > recursor-bulktest
/diff
73 egrep 'PowerDNS.COM|^<measurement' recursor.log
> recursor-bulktest
/stdout
74 echo "<measurement><name>% domains resolved</name><value>$DBT_OKPERCENTAGE</value></measurement>" >> recursor-bulktest
/stdout
76 : ${context:="recursor-bulktest"}