Severe PDNS Performace Problems (Long Mial Contains Config)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Severe PDNS Performace Problems (Long Mial Contains Config)

AJ McKee
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=





Reply | Threaded
Open this post in threaded view
|

Re: Severe PDNS Performace Problems (Long Mial Contains Config)

bert hubert
On Thu, Feb 27, 2003 at 11:13:11AM -0000, AJ McKee wrote:
> Hi Again,
>
> As my last mail did not have enough information I will explain my setup
> here and the problems I am having.

Can you verify that you have functioning indexes in mysql? Can you specify,
in private perhaps, how many lookups you have and how many records?

> launch=mysql
> mysql-socket=/var/lib/mysql/mysql.sock
> mysql-user=powerdns
> mysql-password=*******
> mysql-dbname=dns_server

do NOT do this. Run with *G*mysql.

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

Set this to 1 immediately. I bet it solves all your problems.

Regards,

bert

--
http://www.PowerDNS.com      Open source, database driven DNS Software
http://lartc.org           Linux Advanced Routing & Traffic Control HOWTO
http://netherlabs.nl                         Consulting