[Pdns-users] Severe PDNS Performace Problems (Long Mial Contains Config)

AJ McKee aj.mckee at nmtbmedia.com
Thu Feb 27 11:13:11 UTC 2003


Hi Again,

As my last mail did not have enough information I will explain my setup
here and the problems I am having. 

Setup
-----------------------
Hardware: Compaq Proliant Dl360 (Secondary Server Intel 700Mhz 256MB
Ram)
	    Compaq Proliant DL380 (Primary Intel 1Ghz 256Mb Ram)

OS: 	    RedHat Linux 8.0

PowerDNS Version:  2.9.6

Database Server: Mysql

Databse Setup: Mysql Replication. Master DB is on a Private network and
Replicates to the Secondary which in turn Replicates to the Primary in
another network

Mysql Config: I increased the mysqld max connections to 499 on both
hosts in order to help increase performnce on the Primary after it
failed to be effiecent to server records.

Problems
-----------------------
I am having several problems, and all relate mostly to the primary name
server. First of all performace is incredably slow. I did read the
performace section on the docs and applied them to my setup, however the
server still died on a regular basis. Once the server was restarted,
then lookups would happen quite wuickly, however as after about 15 to 30
min, lookups would return a DNS timeout error. In order to combat this
(As I made this server a live box yesterday) the server is restarted
every hour by a cronjob.

At 7:33 this morning, Nagios stated the server was down. A subsequent
check in messages and /etc/init.d/pdns ststus revealed the server had
died. Unfortunatly I did not get to copy the messages in /var/log

I Did have issues with PTR records but this had been resolved. My
mistake there and I put my hands Up.

Solutions
--------------------
If anyone has any suggestions, on how I can improve performance and
increase the stability of this critical server please feel free. I am
not adverse to putting my hand up and saying I messed up here. I am
quite anxios about this problem at the moment as if I don't get it to
work nicely for me, I'm gonna have to stick a Bind server in which is
what I want to advoid at all costs.  

The configuration is below

Many thanks in advance
AJ

PDNS Configuration
-----------------------
# Autogenerated configuration file template
#################################
# allow-axfr-ips	If disabled, DO allow zonetransfers from these
IP addresses
#
#allow-axfr-ips=

#################################
# allow-recursion	List of netmasks that are allowed to recurse
#
#allow-recursion=

#################################
# cache-ttl	Seconds to store packets in the PacketCache
#
cache-ttl=600

#################################
# chroot	If set, chroot to this directory for more security
#
#chroot=./

#################################
# config-dir	Location of configuration directory (pdns.conf)
#
config-dir=/usr/local/etc

#################################
# config-name	Name of this virtual configuration - will rename the
binary image
#
# config-name=

#################################
# control-console	Debugging switch - don't use
#
# control-console=no

#################################
# daemon	Operate as a daemon
#
# daemon=no

#################################
# default-soa-name	name to insert in the SOA record if none set in
the backend
#
default-soa-name=auth01.noc.tornado.ie

#################################
# disable-axfr	Disable zonetransfers but do allow TCP queries
#
disable-axfr=no

#################################
# disable-tcp	Do not listen to TCP queries
#
disable-tcp=no

#################################
# distributor-threads	Default number of Distributor (backend) threads
to start
#
distributor-threads=20

#################################
# fancy-records	Process URL and MBOXFW records
#
fancy-records=no

#################################
# guardian	Run within a guardian process
#
# guardian=no

#################################
# launch	Which backends to launch and order to query them in
#
# launch=
launch=mysql
mysql-socket=/var/lib/mysql/mysql.sock
mysql-user=powerdns
mysql-password=*******
mysql-dbname=dns_server

#################################
# lazy-recursion	Only recurse if question cannot be answered
locally
#
lazy-recursion=yes

#################################
# load-modules	Load this module - supply absolute or relative path
#
# load-modules=

#################################
# local-address	Local IP address to which we bind
#
local-address=x.x.x.15,x.x.x.6

#################################
# local-ipv6	Local IP address to which we bind
#
# local-ipv6=

#################################
# local-port	The port on which we listen
#
local-port=53

#################################
# log-dns-details	If PDNS should log failed update requests
#
#log-dns-details=

#################################
# log-failed-updates	If PDNS should log failed update requests
#
# log-failed-updates=

#################################
# logfile	Logfile to use
#
# logfile=/var/log/pdns.log

#################################
# logging-facility	Log under a specific facility
#
# logging-facility=syslog

#################################
# loglevel	Amount of logging. Higher is more. Do not set below 3
#
# loglevel=3

#################################
# master	Act as a master
#
master=no

#################################
# max-queue-length	Maximum queuelength before considering situation
lost
#
max-queue-length=5000

#################################
# max-tcp-connections	Maximum number of TCP connections
#
max-tcp-connections=300

#################################
# module-dir	Default directory for modules
#
# module-dir=/usr/local/bin/../lib

#################################
# negquery-cache-ttl	Seconds to store packets in the PacketCache
#
negquery-cache-ttl=60

#################################
# only-soa	Make sure that no SOA serial is less than this number
#
# only-soa=org

#################################
# out-of-zone-additional-processing	Do out of zone additional
processing
#
out-of-zone-additional-processing=no

#################################
# query-cache-ttl	Seconds to store packets in the PacketCache
#
query-cache-ttl=200

#################################
# query-logging	Hint backends that queries should be logged
#
# query-logging=no

#################################
# queue-limit	Maximum number of milliseconds to queue a query
#
queue-limit=1500

#################################
# receiver-threads	Number of receiver threads to launch
#
receiver-threads=10

#################################
# recursive-cache-ttl	Seconds to store packets in the PacketCache
#
recursive-cache-ttl=100

#################################
# recursor	If recursion is desired, IP address of a recursing
nameserver
#
recursor=209.41.200.115

#################################
# setgid	If set, change group id to this gid for more security
#
setgid=powerdns

#################################
# setuid	If set, change user id to this uid for more security
#
setuid=powerdns

#################################
# skip-cname	Do not perform CNAME indirection for each query
#
skip-cname=no

#################################
# slave	Act as a slave
#
# slave=no

#################################
# slave-cycle-interval	Reschedule failed SOA serial checks once every
.. seconds
#
# slave-cycle-interval=60

#################################
# smtpredirector	Our smtpredir MX host
#
# smtpredirector=a.misconfigured.powerdns.smtp.server

#################################
# soa-minimum-ttl	Default SOA mininum ttl
#
soa-minimum-ttl=3600

#################################
# soa-serial-offset	Make sure that no SOA serial is less than this
number
#
soa-serial-offset=0

#################################
# socket-dir	Where the controlsocket will live
#
# socket-dir=/var/run

#################################
# strict-rfc-axfrs	Perform strictly rfc compliant axfrs (very slow)
#
# strict-rfc-axfrs=no

#################################
# urlredirector	Where we send hosts to that need to be url redirected
#
# urlredirector=127.0.0.1

#################################
# use-logfile	Use a log file
#
# use-logfile=no

#################################
# webserver	Start a webserver for monitoring
#
webserver=no

#################################
# webserver-address	IP Address of webserver to listen on
#
#webserver-address=

#################################
# webserver-password	Password required for accessing the webserver
#
#webserver-password=

#################################
# webserver-port	Port of webserver to listen on
#
#webserver-port=8080

#################################
# webserver-print-arguments	If the webserver should print arguments
#
#webserver-print-arguments=yes

#################################
# wildcard-url	Process URL and MBOXFW records
#
# wildcard-url=no

#################################
# wildcards	Honor wildcards in the database
#
# wildcards=







More information about the Pdns-users mailing list