Changeset 1493

Show
Ignore:
Timestamp:
01/07/10 12:57:04 (3 years ago)
Author:
ahu
Message:

add packetcache statistics, plus qps counter in statistics. remove edns stats since we stopped doing edns probing.

Location:
trunk/pdns/pdns
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/pdns/pdns/pdns_recursor.cc

    r1489 r1493  
    9494 
    9595__thread MemRecursorCache* t_RC; 
    96 static __thread RecursorPacketCache* t_packetCache; 
     96__thread RecursorPacketCache* t_packetCache; 
    9797RecursorStats g_stats; 
    9898bool g_quiet; 
     
    986986void doStats(void) 
    987987{ 
    988  
     988  static time_t lastOutputTime; 
     989  static uint64_t lastQueryCount; 
     990   
    989991  if(g_stats.qcounter && (t_RC->cacheHits + t_RC->cacheMisses) && SyncRes::s_queries && SyncRes::s_outqueries) {  // this only runs once thread 0 has had hits 
    990992    uint64_t cacheHits = broadcastAccFunction<uint64_t>(pleaseGetCacheHits); 
     
    10051007      broadcastAccFunction<uint64_t>(pleaseGetConcurrentQueries)<<" queries running, "<<SyncRes::s_outgoingtimeouts<<" outgoing timeouts"<<endl; 
    10061008 
    1007     L<<Logger::Warning<<"stats: "<<g_stats.ednsPingMatches<<" ping matches, "<<g_stats.ednsPingMismatches<<" mismatches, "<< 
    1008       g_stats.noPingOutQueries<<" outqueries w/o ping, "<< g_stats.noEdnsOutQueries<<" w/o EDNS"<<endl; 
    1009     // L<<Logger::Warning<<"stats: "<< 
    1010      // cacheHits <<" packet cache hits ("<<(int)(100.0*cacheHits/SyncRes::s_queries) << "%)"<<endl; 
     1009    //L<<Logger::Warning<<"stats: "<<g_stats.ednsPingMatches<<" ping matches, "<<g_stats.ednsPingMismatches<<" mismatches, "<< 
     1010      //g_stats.noPingOutQueries<<" outqueries w/o ping, "<< g_stats.noEdnsOutQueries<<" w/o EDNS"<<endl; 
     1011     
     1012    L<<Logger::Warning<<"stats: " <<  broadcastAccFunction<uint64_t>(pleaseGetPacketCacheSize) << 
     1013    " packet cache entries, "<<(int)(100.0*broadcastAccFunction<uint64_t>(pleaseGetPacketCacheHits)/SyncRes::s_queries) << "% packet cache hits"<<endl; 
     1014     
     1015    time_t now = time(0); 
     1016    if(lastOutputTime && lastQueryCount && now != lastOutputTime) { 
     1017      L<<Logger::Warning<<"stats: "<< (SyncRes::s_queries - lastQueryCount) / (now - lastOutputTime) <<" qps (average over "<< (now - lastOutputTime) << " seconds)"<<endl; 
     1018    } 
     1019    lastOutputTime = now; 
     1020    lastQueryCount = SyncRes::s_queries; 
    10111021  } 
    10121022  else if(statsWanted)  
  • trunk/pdns/pdns/rec_channel_rec.cc

    r1489 r1493  
    290290 
    291291 
     292 
     293 
     294uint64_t* pleaseGetPacketCacheSize() 
     295{ 
     296  return new uint64_t(t_packetCache->size()); 
     297} 
     298 
     299uint64_t doGetPacketCacheSize() 
     300{ 
     301  return broadcastAccFunction<uint64_t>(pleaseGetPacketCacheSize); 
     302} 
     303 
     304uint64_t* pleaseGetPacketCacheHits() 
     305{ 
     306  return new uint64_t(t_packetCache->d_hits); 
     307} 
     308 
     309uint64_t doGetPacketCacheHits() 
     310{ 
     311  return broadcastAccFunction<uint64_t>(pleaseGetPacketCacheHits); 
     312} 
     313 
     314uint64_t* pleaseGetPacketCacheMisses() 
     315{ 
     316  return new uint64_t(t_packetCache->d_misses); 
     317} 
     318 
     319uint64_t doGetPacketCacheMisses() 
     320{ 
     321  return broadcastAccFunction<uint64_t>(pleaseGetPacketCacheMisses); 
     322} 
     323 
     324 
    292325RecursorControlParser::RecursorControlParser() 
    293326{ 
     
    297330  addGetStat("cache-hits", doGetCacheHits); 
    298331  addGetStat("cache-misses", doGetCacheMisses);  
    299  
    300332  addGetStat("cache-entries", doGetCacheSize);  
     333   
     334  addGetStat("packetcache-hits", doGetPacketCacheHits); 
     335  addGetStat("packetcache-misses", doGetPacketCacheMisses);  
     336  addGetStat("packetcache-entries", doGetPacketCacheSize);  
     337   
     338   
     339   
    301340  addGetStat("servfail-answers", &g_stats.servFails); 
    302341  addGetStat("nxdomain-answers", &g_stats.nxDomains); 
  • trunk/pdns/pdns/recpacketcache.cc

    r1477 r1493  
    88RecursorPacketCache::RecursorPacketCache() 
    99{ 
     10  d_hits = d_misses = 0; 
    1011} 
    1112 
     
    2021    *responsePacket = iter->d_packet; 
    2122    ((struct dnsheader*)responsePacket->c_str())->id=id; 
     23    d_hits++; 
    2224    return true; 
    2325  } 
     26  d_misses++; 
    2427  return false; 
    2528} 
     
    3942} 
    4043 
    41  
     44uint64_t RecursorPacketCache::size() 
     45{ 
     46  return d_packetCache.size(); 
     47} 
  • trunk/pdns/pdns/recpacketcache.hh

    r1478 r1493  
    1616   
    1717  void prune(); 
     18  uint64_t d_hits, d_misses; 
     19  uint64_t size(); 
     20 
    1821private: 
    1922 
  • trunk/pdns/pdns/syncres.hh

    r1489 r1493  
    1515#include "sstuff.hh" 
    1616#include "recursor_cache.hh" 
     17#include "recpacketcache.hh" 
    1718#include <boost/tuple/tuple.hpp> 
    1819#include <boost/optional.hpp> 
     
    2223 
    2324void primeHints(void); 
    24  
    25  
    2625 
    2726struct NegCacheEntry 
     
    451450}; 
    452451extern __thread MemRecursorCache* t_RC; 
     452extern __thread RecursorPacketCache* t_packetCache; 
    453453typedef MTasker<PacketID,string> MT_t; 
    454454extern __thread MT_t* MT; 
     
    528528uint64_t* pleaseGetConcurrentQueries(); 
    529529uint64_t* pleaseGetThrottleSize(); 
     530uint64_t* pleaseGetPacketCacheHits(); 
     531uint64_t* pleaseGetPacketCacheSize(); 
     532 
    530533#endif