What is the load control mechanism at CNAM?

Our server is used for many things, some serious, some more recreational, some even questionable.

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>