Packets lost when multi threading

Hi,

When I run unbound multi-threaded perf keeps reporting 'Packets lost',
but when it runs single threaded it does not.

$ perf -d 10 -a 'www.omroep.nl IN A' 2a02:458:101:31::34
qps: 29262.9
qps: 31986.4
qps: 32167.5
qps: 32479.7
qps: 33064.3
qps: 32174.4
qps: 31408.1
qps: 35887.4
qps: 37471.3
qps: 35364.5
overall time: 10.0001 sec
Packets lost: 732
0(NOERROR): 331249 replies
average qps: 33124.5

This is unbound-1.4.18 with openssl-1.0.0j, ldns-1.6.16 and
libevent-2.0.21-stable running on a linux-2.6.27.59 kernel.

It even reports this when perf is run on the host running unbound.

Is this a known issue?

Hi Leo,

It makes no difference.

here's the multithreading part of my unbound.conf:

        num-threads: 4
        outgoing-range: 8192
        num-queries-per-thread: 4096
        so-rcvbuf: 4m

Also 'netstat -su' does not report any increments on 'receive errors' or
RcvbufErrors.

Hi Leo,

I think you are right.

Once perf stopped receiving, the client started to send 'ICMP dest.
unreachable'. If I add the number of packets, they get pretty close to the
number of packets lost reported by perf.

So maybe perf should just stop sending after $duration (or SIGHUP) and
wait a while for the last packets to arrive?