Re: [reSIProcate] DNS performance tuning
I always see a delay of 20 or 30 ms. I don't have any NAPTR records since I
always use "transport=udp", and I just use the default SRV for UDP. Here's
what my DNS looks like. I keep an A record pointing to an incorrect IP to
verify that the SRV is resolving right, .249 is the good one. Once the A
record (second lookup) is in cache, it flies, but the SRV (first lookup) is
always slow even after I've already done a lookup on it, so it should be in
cache too.
Dave
$ dig _sip._udp.flammajobby.com any
; <<>> DiG 9.2.1 <<>> _sip._udp.flammajobby.com any
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56531
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; QUESTION SECTION:
;_sip._udp.flammajobby.com. IN ANY
;; ANSWER SECTION:
_sip._udp.flammajobby.com. 600 IN SRV 0 1 5060
sip1.flammajobby.com.
;; AUTHORITY SECTION:
flammajobby.com. 600 IN NS flammajobby.com.
;; ADDITIONAL SECTION:
sip1.flammajobby.com. 600 IN A 10.4.5.249
flammajobby.com. 600 IN A 10.3.4.36
;; Query time: 47 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jan 22 11:16:40 2007
;; MSG SIZE rcvd: 129
-----Original Message-----
From: Byron Campen [mailto:bcampen@xxxxxxxxxxxx]
Sent: Monday, January 22, 2007 11:11 AM
To: Dave Mason
Cc: resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
Subject: Re: [reSIProcate] DNS performance tuning
Well, it looks like you don't have any SRV records in your DNS,
which is what the resolver tries looking for first. When that fails, it
attempts an A query. So, you're having to wait for two DNS queries to finish
in sequence, which would explain some amount of delay. How much delay are
you seeing?
Best regards,
Byron Campen
> Hi,
> I picked up a development build from svn last week and the RRCache
> code works great, thanks for the help on that one. However, I'm still
> seeing a big delay when DnsStub::Query::go: is first called. Is this
> because I'm specifying "transport=udp"? Is there anything I can do to
> reduce or eliminate this? I keep a DnsInterface thread running
> continuously for all my lookups so I don't need to restart it each
> time. I cant think of any problems with my mutex/condition that would
> prevent Query::go from starting.
>
> Regards,
> Dave
>
> Application code
> ----------------
> Constructor for singleton wrapper class:
> dns = new ResipDnsInterface(*stub);
> dns->run();
>
> Lookup code:
> Lock lock(lookupCompleteMutex);
> Condition dnsCond;
> DebugLog (<< "ResipDns::lookup - Looking up");
> dns->lookup(res, query.uri);
> DebugLog (<< "ResipDns::lookup - waiting for results");
> dnsCond.wait(lookupCompleteMutex); // signal sent from end of
> DnsHandler::handle
> InfoLog (<< "ResipDns::lookup - DNS results for " << query.uri);
>
> Stack trace
> -----------
> DEBUG | 20070119-163503.126 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:227 | ResipDns::lookup - Creating Uri:
> sip:flammajobby.com;transport=udp
> DEBUG | 20070119-163503.126 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:233 | ResipDns::lookup - Creating DnsResult DEBUG |
> 20070119-163503.126 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:236 | ResipDns::lookup - Looking up DEBUG |
> 20070119-163503.126 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 190616 | DnsResult.cxx:198 | DnsResult::lookup
> sip:flammajobby.com;transport=udp STACK | 20070119-163503.126 |
> dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 190616 | DnsResult.cxx:321 | Doing SRV lookup of
> _sip._udp.flammajobby.com DEBUG | 20070119-163503.126 | dcmlaptop |
> SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:250 | ResipDns::lookup - waiting for results STACK |
> 20070119-163503.154 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | dns/DnsStub.cxx:375 | DnsStub::Query::go:
> _sip._udp.flammajobby.com
> type(enum): 33 proto: 1
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:912 | Received SRV result for: flammajobby.com
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:915 | DnsResult::onDnsResult() 0 status=4 STACK
> | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:978 | SRV lookup failed:
> _sip._udp.flammajobby.com 4
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:1024 | No SRV records for flammajobby.com.
> Trying A
> records
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | dns/DnsStub.cxx:375 | DnsStub::Query::go: flammajobby.com
> type(enum): 1 proto: 1
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:749 | Received dns result for: flammajobby.com
> STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:750 | DnsResult::onDnsResult() 0 STACK |
> 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:771 | Adding [ V4 10.4.5.249:5060 UDP target
> domain=flammajobby.com connectionId=0 ] to result set DEBUG |
> 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 162926 | app.cpp:66 | ResipDnsHandler::handle - received
> flammajobby.com STACK | 20070119-163503.155 | dcmlaptop | SmSipMgr |
> RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:178 | Returning next dns entry: [ V4
> 10.4.5.249:5060 UDP target domain=flammajobby.com connectionId=0 ]
> DEBUG | 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 162926 | app.cpp:74 | flammajobby.com -> [ V4 10.4.5.249:5060 UDP
> target domain=flammajobby.com connectionId=0 ] STACK |
> 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:DNS |
> 17423 |
> 162926 | DnsResult.cxx:485 | Priming [] DEBUG | 20070119-163503.155 |
> dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 162926 | app.cpp:78 | ResipDnsHandler::handle - complete INFO |
> 20070119-163503.155 | dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:253 | ResipDns::lookup - DNS results for
> sip:flammajobby.com;transport=udp INFO | 20070119-163503.156 |
> dcmlaptop | SmSipMgr | RESIP:APP |
> 17423 |
> 190616 | app.cpp:260 | [ V4 10.4.5.249:5060 UDP target
> domain=flammajobby.com connectionId=0 ]
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel@xxxxxxxxxxxxxxxxxxxx
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel