DCC build options for performance and sizing

Vernon Schryver vjs@calcite.rhyolite.com
Tue May 11 17:05:14 UTC 2010

> From: Gary Mills <mills@cc.umanitoba.ca>
> To: dcc@calcite.rhyolite.com

> The DCC documentation describes two build options appear to affect
> performance:
>    --with-db-memory=MB   ./configure 64 minimum server database buffer
>    size between 32 MBytes and 49152 MBytes
>    --with-max-db-mem=MB   ./configure 1920 on 32-bit systems
>    49152 on 64-bit systems maximum server database buffer size
> I've been building DCC with only this setting:
>    --with-db-memory=512
> How should I determine reasonable values for those two settings?

In most situations, the right value for both settings is no setting.
Dccd and dbclean use various mechanisms to figure out how much
physical RAM the system has, and then adjusts the window into
the database (--with-db-memory) and the maximum size of the database
(--with-max-db-mem) to use most of the system for dccd and dbclean.

If the system is used for a memory pig in addition to dccd,
you might want to limit the maximum size of the database with

It almost never makes sense to use --with-db-memory.

So unless you have a known and compelling reason to build with
`./configure --with-db-memory=X`,
it would be best to not use --with-db-memory

The end of /var/dcc/libexec/updatedcc contains the ./configure
command used to build the software most recently.  As the comments
in the front of updatedcc say, you can rebuild without a 
--with-db-memory setting by
  /var/dcc/libexec/updatedcc -c--without-db-memory

> I'm running DCC on two servers.  One is an older SPARC machine with
> only 2 GB of memory.  It runs Solaris 9.  The other is a recent x86
> machine with 64 GB of memory.  It runs Solaris 10.  I am planning to
> replace the former one.  I could also move DCC to a newer server.

2 GByte is not much RAM for the current size of the consensus database.

> As well, there's this build option:
>    --enable-64-bits   ./configure depends on operating system and hardware
>    enable 64-bits on Solaris and Linux PowerPC
> Is this recommended?  I could certainly do that.  What sort of
> improvement should I expect?

--enable-64-bits works around problems in detecting whether the
system is a real 64-bit kernel and libraries.
You should always build dccd for 64 bits if you know the system
has 64-bit libraries.
On systems other than Solaris and Linux on PowerPC, it's automatic.

Vernon Schryver    vjs@rhyolite.com

More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.