The server currently (27 July 1994) runs on a DEC 3000/600S (Alpha). The poor thing has only 128 Mb of RAM and is used for other purposes as well. So we decided to implement an load control mechanism (yes, we had also a difficult technical problem which sometimes blocked connections). We use our own HTTP server , developed by Pascal Courtois . Please note it is not officially distributed or supported but it has some nice features which lacks in other servers . Also, remember the version we currently export is not the one with load control (which we still keep for us alone).
The mechanism is two-folded: first, when a new connection is requested, the HTTP daemon checks to see if the number of clients is above a given limit (currently twenty). If it is, it displays the famous message "Too many users are connected to this server". This control applies to all requests.
Then, the server accepts the connection but tests the file name requested
against a configuration file httpd.conf
. This file looks like
that:
limit 5 /Images/Nice/ limit 1 /progs/stats /progs/find limit1 10 /myprogram /mydata/Note the two different keywords,
limit
and limit1
. In
the first case, if the requested file matches one of the entries, the server
refuses the request
if the number of current clients is superior to the limit. You then get the
message: "Too many users are connected to "name-of-the-service"".
In the second case (limit1
), only the first file can be refused
but
all the others are included to compute the number of clients. That is because of
the
IMG SRC directive in
HTML. It
would be a serious problem is the page were
loaded but the image(s) weren't. So this system ensures compliance with HTML's
objectives.
Note that the parameters of the limit
directive can be files
or directories (in this case, the limit applies to all files in the directory
and its subdirectories). The first limit in the sample httpd.conf
above applies to all files in the directory /Images/Nice/
. The
second one applies to the two files stats
and find
.
The third one, with the limit1
directive can prevent the
loading of myprogram
(but not the requests for files in
mydata
). To test if the limit has been reached, files in
mydata
are included.
Other sites like the Digital Picture Archive on the 17th floor can implement other load control methods but I'm not aware of any mechanism compatible with HTML's inline images. Also, despite the serious load problems faced by the Web, I don't know a good tutorial about the ways to solve them.
We have other tools at CNAM.
All questions or remarks about CNAM Web server to :
<webmaster@cnam.fr>