Every few seconds (at least in my configuration), PDNS runs database queries to see which domains need refreshing.

After running for a while with this problem, I can "catch" those queries (at least one of them) with SHOW PROCESSLIST.
Excerpt:
| 117 | pdns | localhost | pdns | Execute | 0 | Starting cleanup | SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type=? and name=? | 0.000 |

It seems to me that the longer this problem has been going on, the longer this query takes, at least the "starting cleanup" phase of it. I think that's why CPU usage climbs: the longer it goes, the longer this query takes and the more CPU is used to execute it.

Caught a different one just now, also in phase "starting cleanup":
| 128 | pdns | localhost | pdns | Execute | 0 | Starting cleanup | SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and name=? and domain_id=? | 0.000 |

Yes, I can regularly "catch" many queries and they're always in state "starting cleanup".

I went over to the machine that is not having this problem (because it's still on 10.5.15) and was able to catch one such query in "starting cleanup", and another in "commit". But it took maybe 25x more attempts to catch such a query than on the one with the problem. The queries on the "good" box finish very quickly, and they're slow on the "bad" box.

Reply via email to