How to Monitor DNS Query Response Times on Linux Server

Step-by-step guide to monitor DNS query response times. Track DNS performance, detect slow DNS resolution, and optimize DNS configuration.

Last updated: 2026-01-11

How to Monitor DNS Query Response Times on Linux Server

Monitor DNS query response times to track DNS performance, detect slow DNS resolution, and optimize DNS configuration. This guide shows you how to monitor DNS query times and set up automated monitoring.

For comprehensive DNS monitoring, see DNS Performance Monitoring. For troubleshooting DNS issues, see DNS Resolution Failures and Timeout.

Why Monitoring DNS Query Times Matters

DNS query response times directly impact application performance. Slow DNS resolution causes delayed page loads and poor user experience. Monitoring DNS query times helps maintain optimal DNS performance.

Method 1: Measure DNS Query Time with dig

Check DNS Query Time

# Measure DNS query time
dig example.com +stats

# Get query time only
dig example.com +noall +stats | grep "Query time"

# Query specific DNS server
dig @8.8.8.8 example.com +stats | grep "Query time"

# Compare query times from different DNS servers
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
  echo -n "$dns: "
  dig @$dns example.com +noall +stats | grep "Query time"
done

Monitor DNS Query Performance

# Test DNS query time multiple times
for i in {1..10}; do
  dig example.com +noall +stats | grep "Query time"
done

# Calculate average query time
dig example.com +noall +stats | grep "Query time" | awk '{sum+=$4; count++} END {print "Average:", sum/count, "msec"}'

Method 2: Measure DNS Query Time with nslookup

Check DNS Resolution Speed

# Measure DNS query time
time nslookup example.com

# Query specific DNS server
time nslookup example.com 8.8.8.8

# Test multiple domains
for domain in example.com google.com github.com; do
  echo -n "$domain: "
  time nslookup $domain 2>&1 | grep "real"
done

Method 3: Automated DNS Query Time Monitoring with Zuzia.app

Set up automated monitoring to track DNS query times continuously and receive alerts when query times exceed thresholds.

Step 1: Add DNS Query Time Monitoring Command

  1. Log in to Zuzia.app Dashboard

    • Access your Zuzia.app account
    • Navigate to your server
    • Click "Add Scheduled Task"
  2. Configure DNS Query Time Check Command

    dig example.com +noall +stats | grep "Query time" | awk '{print $4}'
    
    • Set execution frequency (every 5-10 minutes)
    • Configure alerts when query time exceeds thresholds

Step 2: Configure Alert Thresholds

  • Warning: Query time > 100ms
  • Critical: Query time > 500ms
  • Emergency: Query time > 1000ms

Step 3: Monitor Multiple DNS Servers

Add commands to monitor different DNS servers:

# Monitor Google DNS
dig @8.8.8.8 example.com +noall +stats | grep "Query time"

# Monitor Cloudflare DNS
dig @1.1.1.1 example.com +noall +stats | grep "Query time"

Best Practices for DNS Query Time Monitoring

1. Monitor DNS Query Times Continuously

  • Track query times regularly
  • Alert when query times exceed thresholds
  • Compare query times across DNS servers
  • Optimize DNS configuration based on data

2. Test Multiple DNS Servers

  • Monitor performance of primary DNS servers
  • Test backup DNS servers
  • Compare DNS server performance
  • Switch DNS servers if needed

3. Monitor DNS Resolution Success

  • Track DNS resolution success rate
  • Monitor DNS failure patterns
  • Alert on DNS resolution failures
  • Investigate root causes of failures

4. Set Appropriate Thresholds

  • Set thresholds based on application requirements
  • Adjust thresholds for different DNS servers
  • Monitor query time percentiles
  • Alert on query time degradation

Troubleshooting Slow DNS Query Times

Step 1: Identify DNS Performance Problems

When DNS query times are slow:

# Check current DNS query time
dig example.com +noall +stats | grep "Query time"

# Test multiple DNS servers
for dns in 8.8.8.8 1.1.1.1; do
  echo -n "$dns: "
  dig @$dns example.com +noall +stats | grep "Query time"
done

# Check DNS server connectivity
ping -c 3 8.8.8.8

Step 2: Optimize DNS Performance

Based on investigation:

  1. Use Faster DNS Servers:

    • Switch to faster DNS servers
    • Configure DNS caching
    • Optimize DNS configuration
  2. Fix DNS Issues:

    • Resolve DNS server problems
    • Fix DNS configuration errors
    • Update DNS records
  3. Optimize DNS Infrastructure:

    • Implement DNS caching
    • Use local DNS resolvers
    • Optimize DNS server performance

FAQ: Common Questions About DNS Query Time Monitoring

What is considered slow DNS query time?

Slow DNS query time depends on your requirements. Generally, query times under 50ms are excellent, 50-100ms are good, 100-200ms are acceptable, and over 200ms are slow. Set thresholds based on your application requirements.

How often should I check DNS query times?

For production servers, continuous automated monitoring is essential. Zuzia.app can check DNS query times every few minutes, storing historical data and alerting you when query times exceed thresholds.

How do I improve DNS query times?

Improve DNS query times by using faster DNS servers, implementing DNS caching, optimizing DNS configuration, and using local DNS resolvers when possible.

Can DNS monitoring impact server performance?

DNS monitoring commands have minimal impact on server performance when done correctly. Use appropriate monitoring frequency and avoid excessive DNS queries during monitoring.

Note: The content above is part of our brainstorming and planning process. Not all described features are yet available in the current version of Zuzia.

If you'd like to achieve what's described in this article, please contact us – we'd be happy to work on it and tailor the solution to your needs.

In the meantime, we invite you to try out Zuzia's current features – server monitoring, SSL checks, task management, and many more.

We use cookies to ensure the proper functioning of our website.