of system calls used to perform a certain function / task; other tricks; ... used to implement a web server program, can bias a lot the performances and in particular the scalability level that can be achieved under heavy load or when using high end hardware (many CPUs, disks and lots of RAM). In practice some web server software models may require more OS resources (specially more CPUs and more RAM) than others to be able to work well and so to achieve target performances. Operating conditions There are many operating conditions that can affect the performances of a web server; performance values may vary depending on (i.e.): the settings of web server (including the fact that log file is or is not enabled, etc.); the HTTP version used by client requests; the average HTTP request type (method, length of HTTP headers and optional body); whether the requested content is static or dynamic; whether the content is cached or not cached (by server and/or by client); whether the content is compressed on the fly (when transferred), pre-compressed (i.e. when a file resource is stored on disk already compressed so that web server can send that file directly to the network with the only indication that its content is compressed) or not compressed at all; whether the connections are or are not encrypted; the average network speed between web server and its clients; the number of active TCP connections; the number of active processes managed by web server (including external CGI, SCGI, FCGI programs); the hardware and software limitations or settings of the OS of the computer(s) on which the web server runs; other minor conditions. Benchmarking Performances of a web server are typically benchmarked by using one or more of the available automated load testing tools. Load limits A web server (program installation) usually has pre-defined load limits for each combination of operating conditions, also because it is limited by OS resources and because it can handle only a limited number of concurrent client connections (usually between 2 and several tens of thousands for each active web server process, see also the C10k problem and the C10M problem). When a web server is near to or over its load limits, it gets overloaded and so it may become unresponsive. Causes of overload At any time web servers can be overloaded due to one or more of the following causes (e.g.).