Can I start multiple processes(named) in a server?

wllarso wllarso at swcp.com
Thu Jul 1 15:39:49 UTC 2010


On Thu, 01 Jul 2010 10:50:24 -0400, Alan Clegg <aclegg at isc.org> wrote:
> On 7/1/2010 4:21 AM, ShanyiWan wrote:
> 
>> Multiple processes(named): Can I start multiple processes(named) in a
>> server and each process can provide services normally? See
>> information so that on the internet(I think this may be wrong).How
>> can i do to maximize the ability of concurrent queries(named) ? All
>> the name.conf is the same:
> 
> You can't have more than one process listening on the same
> {address,port} at the same time, so no, you can't do what you are trying
> to do in the way you are trying to do it.
> 
> What exactly is it that you want to gain?  From the above, it would seem
> that you are looking for higher queries/second?
> 
> Based on my recollection, you aren't going to get high q/sec out of DLZ
> due to the way it queries the database for every incoming query -- you
> may want to put a layer of caching recursive servers in front of your
> DLZ server, or run your DLZ server on a different set of ports and have
> your "customer facing" bind cache responses from it.

If Alan's guess about the reason for trying this is to obtain higher
performance, then you should review the information about BIND DLZ
performance at http://bind-dlz.sourceforge.net/perf_tests.html.  Granted,
this info about an older version of BIND, and BIND-DLZ, and on older
hardware, but there is some very good performance indicators listed.

In particular, they have a table of BIND DLZ performance using a number of
different drivers.  I have attempted to copy and past this performance
comparison table into this message.  (If you can't read it, go back to the
original source.)

        Bind    Postgres        MySQL   LDAP    FileSystem*     Berkely DB
                                                                BTREE  
HASH    HPT-T   HPT-C   HPT-P
QPS     16,108  589             689     82      176             1116   
1011    5325    9164    12,050

Notice that with a vanilla BIND server they were able to get 16k queries
per second.  Using BIND-DLZ with a MySQL database back end they were not
even getting 700 queries per second.  

Also, going back to to the BIND DLZ Home page on Source Forge, they say:

    DLZ (Dynamically Loadable Zones) is a patch for BIND 
    version 9 that simplifies BIND administration and reduces 
    memory usage and startup time. DLZ allows you to store 
    your zone data in a database. Unlike using scripts, the 
    changes in your database are immediately reflected in 
    BIND's response to DNS queries, so there is no need to 
    reload or restart BIND. You see, BIND "dynamically loads" 
    the "zone" data it needs to answer a query from the database. 

Notice that they say that there are many different reasons that BIND-DLZ
is useful and helpful, but NEVER do they claim that it's goal is high
performance, and their own testing demonstrates this.  The combination of
BIND-DLZ and MySQL does NOT provide for a high performance DNS server.

Alan does provide some very good suggestions for implementing a DNS server
system using BIND-DLZ/MySQL to get better performance, basically provide
your users a caching BIND front end that would query your BIND-DLZ server. 
But then again, this may kill the benefit of using a BIND-DLZ server in the
first place.

I've played with BIND-DLZ using MySQL as the data store.  My experience is
that no matter how "convenient" managing the DNS data in a SQL database,
the performance just didn't meet my expectations.  

My suggestion to anyone looking at using BIND-DLZ is to really think about
what they want from it.  It is convenient, it is more complex, and it is
slow.  Can you live with it's advantages AND disadvantages?

Bill Larson



More information about the bind-users mailing list