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

2010-07-01 Thread wllarso
On Thu, 01 Jul 2010 10:50:24 -0400, Alan Clegg  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.)

BindPostgresMySQL   LDAPFileSystem* Berkely DB
BTREE  
HASHHPT-T   HPT-C   HPT-P
QPS 16,108  589 689 82  176 1116   
10115325916412,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
___
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


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

2010-07-01 Thread Alan Clegg
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.

AlanC



signature.asc
Description: OpenPGP digital signature
___
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users