Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DREADERD(8)		     System Manager's Manual		     DREADERD(8)

NAME
     dreaderd - NNTP reader daemon for reader support

SYNOPSIS
     dreaderd  [ -d[#...]  ] [ -f[0] ] -p newspathname/0 [ -s argv-buffer-space-
     for-ps-status ] [ -T txbufsize ] [ -R rxbufsize ]	[  -F maxfeedforks  ]  [
     -D numdnsprocs  ]	[  -M numreaderprocs  ] [ -N maxconnectperreaderproc ] [
     -h reportedhostname ] [ -c delayedclosesecs  ]  [	-B bindhost[:port]  ]  [
     -P port ] [ -x xrefhost ]

DESCRIPTION
     dreaderd  is  an internet NNTP newsreader system which normally sits on the
     NNTP port of a machine, port 119.	It is often run to sit on two ports  via
     -P  119  -P  434  in order to handle inews implementations which connect to
     port 434.	dreaderd is extremely flexible and can operate with a number  of
     different spool configurations.  It can generate local Xref:'s and maintain
     a	local active file or it can slave off Xref:'s generated from another en-
     tity.  All leaf node dreaderd systems require either a header-only feed  or
     a normal feed from which headers can be extracted.  Since dreaderd does not
     maintain its own history file, the feed must be pre-filtered.  It is possi-
     ble  to take multiple feeds only in slave Xref: mode where the article num-
     bers are synchronized between the multiple feeds.

     dreaderd maintains overview information locally but expects to retrieve ar-
     ticle bodies from remote spool sources via the 'article <message-id>'  NNTP
     command.	It  implements	the  entire NNTP command set including xover and
     xhdr extensions.  It is also able to maintain a local article cache  though
     this feature is not always appropriate.  You can create a multi-level cache
     by  having  the  leaf  dreaderd  use another dreaderd for its spool access.
     Several topologies are typical.

     First, you run the Diablo feeder side (the diablo server) on the  same  ma-
     chine  as	you run dreaderd.  This allows you to send multiple feeds to the
     diablo server and then have the server send a single  header-only	feed  to
     dreaderd  running	on the same machine.  In this configuration you normally
     run dreaderd on ports 119 and 434 and run diablo on port 435 and  you  nor-
     mally turn OFF article caching in dreaderd, instead using diablo's spool on
     the  same	box  for  your first level cache.  The diablo feeder side can be
     configured with a small spool or a huge spool depending  on  what	kind  of
     caching you want to do before dreaderd backs off to a remote spool.  If you
     configure	a  huge diablo feeder spool, it can act as the sole spool source
     to dreaderd.

     Second, you run dreaderd standalone on a machine.	You must still supply  a
     feed  to  dreaderd  from  which it can extract the headers and maintain its
     overview database (a 9G  disk  is	recommended  for  /news/spool/group  for
     overview  storage).   Note  that  you  should  supply only a single feed to
     dreaderd because dreaderd itself does not maintain a history file.   dread-
     erd  can  take  a header-only feed or a full-article feed depending on what
     you use to feed it.  You then configure dreaderd to obtain it's spool  from
     one or more off-machine servers.

     Third,  you  can run dreaderd as a mid-level cache for a leaf dreaderd.  In
     this configuration dreaderd is used solely for 'article  <message-id>'  re-
     trievals  and  not  for  news reading.  You do NOT have to supply a feed to
     dreaderd in this case so you do not need a 9G disk  for  overview	informa-
     tion.   Your active file can be minimal since it is not really needed.  You
     need a disk sufficiently sized to handle the  article  cache  you	wish  to
     maintain  on  the	machine.  In this configuration you use the intermediate
     dreaderd to cache articles from offsite spools and have your leaf	dreaderd
     talk  to the midlevel dreaderd (the leaf dreaderd still needs a feed in or-
     der to maintain overview information).

     dreaderd maintains an active file, dactive.kp,  which  is	a  KP  database.
     That  is, it is human-readable and machine-writable (human editable only if
     no processes have the file locked).  The

     dsyncgroups program may be used to initially create dactive.kp from an  INN
     box.   There are several ways to maintain dactive.kp ... you can use dsync-
     groups to maintain the article range from a remote server even if	the  re-
     mote server's article numbers are not synchronized with yours.  The expire-
     over program will also adjust the beginning article number in an attempt to
     maintain  sufficient  free space in the overview partition.  The expireover
     program then deletes overview data files containing articles that are  out-
     side the article range.  Both methods may be used together.  dreaderd main-
     tains  overview  data  files  in blocks of 256 articles and can only delete
     whole blocks, so no less then a 4G disk should be	used  for  the	overview
     partition.

     dreaderd  requires  dactive.kp,  dreader.access,  dserver.hosts,  and  dia-
     blo.config to be configured properly.  It also requires the  /news/log  di-
     rectory  to exist.  Realtime human-readable status information is stored in
     /news/log/dreaderd.status as well as on the process command line (i.e.  via
     'ps'  on  many  systems).	 See the sample files for more information.  The
     most critical configuration for dreaderd is dserver.hosts and  the  command
     line  arguments  given  to dreaderd when it is run.  See the sample rc.news
     file for more information.

     The dreaderd cache is optional but usually used, even if only a small  par-
     tition is available, to reduce the bandwidth required to pull articles from
     the  spool  machine.   However, if you are running the diablo feeder on the
     same machine you usually use that as dreaderd's first level cache and  thus
     do  not  use dreaderd's own internal cache.  dreaderd's cache configuration
     is stored in diablo.config.  The default is for the cache to be turned on.

     -d[#] turns on debugging.

     -f[0] Turns on or off the fast-copy feature.  The default is ON.  -f0  will
     turn it off.  The fast-copy feature allows Diablo to start sending data re-
     ceived  from remote spools to requesting clients as it is received from the
     remote spool.  However, this means that if the remote  spool  dies  in  the
     middle  of  the  transfer, the client will receive a truncated article.  If
     the fast-copy option is off, dreaderd buffers  the  entire  article  before
     sending  it  to the client and is able to transparently restart the request
     if the remote spool dies in the middle of the transfer.

     -p newspathname/0 specify host name for Path: header, '-p 0' for none.  See
     also the ``readerpath'' option in diablo.config(8).

     -s  argv-buffer-space-for-ps-status specify an argv buffer area that status
     can be stored into to show up in a ps.

     -T txbufsize specify the size of the transmit buffer for NNTP  connections.
     The default is 4K.

     -R  rxbufsize  specify the size of the receive buffer for NNTP connections.
     The default is 2K.

     -F maxfeedforks specify the maximum number of non-NNTP forks from feeds.  4
     is a good number.	Any connections which resolves to 'f' in  dreader.access
     where  the  'r' and 'p' flags are NOT also set will be routed to one of the
     feed-only forks.  This is desireable because an incoming feed  is	a  high-
     load  item  and  can  slow down reader threads running on the same process.
     This option will override its diablo.config counterpart.

     -D numdnsprocs dreaderd forks off a number of processes to handle	DNS  au-
     thentication,  allowing several incoming connections to be resolved in par-
     allel.  Typically you want one dns thread for every 90 or so users  with  a
     minimum  of  four.  So, for example, if you configure dreaderd to handle up
     to 750 users, you would want 8 or 9 DNS forks.  This option  will	override
     its diablo.config counterpart.

     -M  numreaderprocs  specify  the number of reader processes, default is 10.
     Each reader process can handle several connections in parallel but opens  a
     connection  to  each spool and post server, so be sure that the servers can
     handle the number of reader processes you fork (for example, if the  diablo
     server  is  doing	spool/post  duty, make sure the maxconnect field in dia-
     blo.config and the maxconnect directive in dnewsfeeds is set high	enough).
     This option will override its diablo.config counterpart.

     -N  maxconnectperreaderproc specify the number of connections (threads) per
     reader process.  Default is 40 (10x40 = 400 maximum reader  connections  by
     default).	 You  need to be careful of hitting file descriptor limits and I
     would not set it higher then 40.  It is usually a better idea to  set  this
     limit  lower, to around 25, and to increase the number of forks (-M option)
     in order to increase I/O parallelism. This option will  override  its  dia-
     blo.config counterpart.

     -c  delayedclosesecs  enable and specify the number of seconds to delay the
     closing of a failed connection attempt. This can help against clients  that
     continually  attempt  to  connect	multiple times per second, even when re-
     jected with a 500 error code. The number of  seconds  is  not  an	absolute
     value  and  can  vary up to an extra 10 seconds, depending on how often new
     connections are made to the server. The minimum value is 10 seconds if  the
     server receives no new connections during that time.

     -h  reportedhostname  specify  the  reported host name, otherwise the host-
     name() system call is used. This option  will  override  its  diablo.config
     counterpart.

     -P  [bindhost:]port  specify  the host (if not INADDR_ANY) and port to bind
     to.  Default is INADDR_ANY port 119.  If you specify this option  once  you
     override  the  default.   If  you	specify it a second time (third, fourth,
     etc...) you add additional bindings.  Normally one uses '-P 119 -P 434'  to
     support   traditional   inews/trn.  See  also  the  ``readerbindport''  and
     ``readerbindhost'' options in diablo.config.

     -B bindhost:[port] This is a synonym for -P so that the same option is used
     by other diablo utils, although the bindhost is the default  option  if  no
     options in diablo.config.

     -x  xrefhost  specify  the  hostname as it appears in the Xref: line of the
     host we accept Xref: headers from.  If not specified, or the host does  not
     match,  the  Xref:  header  will be ignored and article numbers will be as-
     signed from the active file. See also the ``readerslavexrefhost'' option in
     diablo.config.

     dreaderd will assign article numbers based on the supplied Xref: header or,
     if the header does not exist, will assign article numbers in sequence.

CRON JOBS
     dexpireover needs to be run at regular intervals, usually twice a day.  You
     also need to manage dreaderd's article cache if you have it enabled in dia-
     blo.config.. usually a cron job run once every few hours to keep the  arti-
     cle  cache from getting to big.  You need to clean the dactive.kp file once
     every few months and, for the moment, that requires shutting down	dreaderd
     entirely and running

SEE ALSO
     diablo(8),  dicmd(8),  didump(8),	diload(8),  dnewslink(8), doutq(8), dex-
     pire(8), dexpireover(8), diconvhist(8), dilookup(8), dspoolout(8),  dkp(8),
     dpath(8), diablo-kp(5), diablo-files(5)

								     DREADERD(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dreaderd&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help