It takes 10+ seconds for an HTTP request from my Droplet to another server to complete. I can confirm that it’s not an issue with poor application code, but something deeper at the networking level. Just running basic curl and outputting timings produces:
$ curl -w "@curl-timings" -o /dev/null -s google.com time_namelookup: 10.044 time_connect: 10.045 time_appconnect: 0.000 time_pretransfer: 10.045 time_redirect: 0.000 time_starttransfer: 10.065 ---------- time_total: 10.065
But as soon as you replace the domain name:
$ curl -w "@curl-timings" -o /dev/null -s 22.214.171.124 time_namelookup: 0.000 time_connect: 0.001 time_appconnect: 0.000 time_pretransfer: 0.001 time_redirect: 0.000 time_starttransfer: 0.039 ---------- time_total: 0.039
This smells like something to do with how my Droplet is performing DNS lookup/resolution, but I don’t really know where to start looking or what to poke around at. Any help?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.