2.9.1 Server requirements
The quick answer to what sort of machine is suitable as
a server is that requirements are modest—a server
with 32M of memory or even less can handle a fairly
large source tree with a fair amount of activity.
The real answer, of course, is more complicated.
Estimating the known areas of large memory consumption
should be sufficient to estimate memory requirements.
There are two such areas documented here; other memory
consumption should be small by comparison (if you find
that is not the case, let us know, as described in
Dealing with bugs in CVS or this manual, so we can update this documentation).
The first area of big memory consumption is large
checkouts, when using the CVS server. The server
consists of two processes for each client that it is
serving. Memory consumption on the child process
should remain fairly small. Memory consumption on the
parent process, particularly if the network connection
to the client is slow, can be expected to grow to
slightly more than the size of the sources in a single
directory, or two megabytes, whichever is larger.
Multiplying the size of each CVS server by the
number of servers which you expect to have active at
one time should give an idea of memory requirements for
the server. For the most part, the memory consumed by
the parent process probably can be swap space rather
than physical memory.
The second area of large memory consumption is
diff
, when checking in large files. This is
required even for binary files. The rule of thumb is
to allow about ten times the size of the largest file
you will want to check in, although five times may be
adequate. For example, if you want to check in a file
which is 10 megabytes, you should have 100 megabytes of
memory on the machine doing the checkin (the server
machine for client/server, or the machine running
CVS for non-client/server). This can be swap
space rather than physical memory. Because the memory
is only required briefly, there is no particular need
to allow memory for more than one such checkin at a
time.
Resource consumption for the client is even more
modest—any machine with enough capacity to run the
operating system in question should have little
trouble.
For information on disk space requirements, see
Creating a repository.