./build-scripts/test-recursor
test-recursor-bulk:
- resource_class: small
+ resource_class: medium
docker:
- image: debian:buster
curl -LO http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip && \
unzip top-1m.csv.zip -d .
- run:
- name: Run bulktests
+ name: Run bulktest A
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 2
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest B
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 4
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest C
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 8
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest D
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 16
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest E
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 2 4096
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest F
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 4 4096
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest G
+ command: |
+ DNSBULKTEST=/usr/bin/dnsbulktest \
+ RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
+ THRESHOLD=95 \
+ TRACE=no \
+ ./timestamp ./recursor-test 5300 50000 8 4096
+ workdir: ~/project/regression-tests
+ - run:
+ name: Run bulktest H
command: |
DNSBULKTEST=/usr/bin/dnsbulktest \
RECURSOR=/opt/pdns-recursor/sbin/pdns_recursor \
THRESHOLD=95 \
TRACE=no \
- ./timestamp ./recursor-test 5300 50000 || \
- (cat recursor.log; false)
+ ./timestamp ./recursor-test 5300 50000 16 4096
workdir: ~/project/regression-tests
test-recursor-api:
-#!/bin/bash -ex
+#!/bin/bash -e
port=$1
[ -z "$port" ] && port=5300
limit=$2
[ -z "$limit" ] && limit=100000
+threads=$3
+[ -z "$threads" ] && threads=2
+mthreads=$4
+[ -z "$mthreads" ] && mthreads=100
: ${RECURSOR:="../pdns/recursordist/pdns_recursor"}
: ${CSV:="top-1m.csv"}
<measurement><name>system CPU seconds</name><value>%S</value></measurement>
<measurement><name>wallclock seconds</name><value>%e</value></measurement>
<measurement><name>%% CPU used</name><value>%P</value></measurement>
-' ${RECURSOR} --daemon=no --local-port=$port --socket-dir=./ --trace=$TRACE --config-dir=. --max-mthreads=100 --query-local-address6="${QLA6}" > recursor.log 2>&1 &
+' ${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 &
sleep 3
+
+# warm up the cache
+echo
+echo === First run with limit=$limit threads=$threads mthreads=$mthreads ===
+${DNSBULKTEST} --www=false -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
+# rerun wit hot cache
+echo
+echo === Second run with limit=$limit threads=$threads mthreads=$mthreads ===
${DNSBULKTEST} --www=false -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
-echo "==== RECURSOR LOG ==="
+
+echo
+echo "=== RECURSOR LOG ==="
cat recursor.log
-echo "==== END RECURSOR LOG ==="
+echo "=== END RECURSOR LOG ==="
kill $(cat pdns_recursor.pid)
sleep 5