Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Web server
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Performances== To '''improve the [[user experience]]''' (on client / browser side), a web server should '''reply quickly''' (as soon as possible) to client requests; unless content response is throttled (by configuration) for some type of files (e.g. big or huge files), also returned data content should be sent as fast as possible (high transfer speed). In other words, a '''web server should always be very [[Responsiveness|responsive]]''', even under high load of web traffic, in order to keep '''total user's wait''' (sum of browser time + network time + '''web server response time''') for a response '''as low as possible'''. === Performance metrics === For web server software, main key '''performance metrics''' (measured under vary [[#Operating conditions|operating conditions]]) usually are at least the following ones (i.e.):<ref name="first-monday-web-server-performance">{{Cite journal|url=https://firstmonday.org/ojs/index.php/fm/article/view/539/460|title=WebMonitor: a tool for measuring World Wide Web server performance|author1=Jussara M. Almeida|author1-link=Jussara M. Almeida|author2=Virgilio Almeida|author3=David J. Yates|journal=First Monday|date=1997-07-07|doi=10.5210/fm.v2i7.539|access-date=2021-11-04|language=en|archive-date=4 November 2021|archive-url=https://web.archive.org/web/20211104215116/https://firstmonday.org/ojs/index.php/fm/article/view/539/460|url-status=live |doi-access= free}}</ref> * {{strong|number of ''{{visible anchor|requests per second}}''}} ({{strong|RPS}}, similar to {{strong|[[queries per second|QPS]]}}, depending on HTTP version and configuration, type of HTTP requests and other operating conditions); * {{strong|number of ''connections per second''}} ({{strong|CPS}}), is the number of connections per second accepted by web server (useful when using HTTP/1.0 or HTTP/1.1 with a very low limit of requests / responses per connection, i.e. 1 .. 20); * {{strong|[[network latency]]}} + '''[[Response time (technology)|response time]]''' for each new client request; usually benchmark tool shows how many requests have been satisfied within a scale of time laps (e.g. within 1ms, 3ms, 5ms, 10ms, 20ms, 30ms, 40ms) and / or the shortest, the average and the longest response time; * {{strong|[[throughput]] of responses}}, in bytes per second. Among the operating conditions, the {{strong|number}} (1 .. ''n'') of {{strong|concurrent client connections}} used during a test is an important parameter because it allows to correlate the {{strong|[[Concurrency (computer science)|concurrency]] level}} supported by web server with results of the tested performance metrics. === Software efficiency === The '''specific web server [[software design]] and model adopted''' (e.g.): * single [[Process (computing)|process]] or multi-process; * single [[Thread (computing)|thread]] (no thread) or multi-thread for each process; * usage of [[coroutines]] or not; ... and other '''programming techniques''', such as (e.g.): * minimization of possible [[Cache miss|CPU cache misses]]; * minimization of possible [[Branch misprediction|CPU branch mispredictions]] in critical paths for speed; * minimization of the number of [[system call]]s used to perform a certain function / task; * other tricks; ... used to implement a web server program, '''can bias a lot the [[Computer performance|performance]]s''' 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 [[web cache|cached]] or not cached (by server and/or by client); * whether the content is [[HTTP compression|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 [[Transmission control protocol|TCP]] connections; * the number of active processes managed by web server (including external CGI, SCGI, FCGI programs); * the [[Computer hardware|hardware]] and [[Computer software|software]] limitations or settings of the [[Operating system|OS]] of the computer(s) on which the web server runs; * other minor conditions. === Benchmarking === {{Main|Web server benchmarking}} Performances of a web server are typically [[Benchmark (computing)|benchmarked]] by using one or more of the available [[Web server benchmarking#Tools for benchmarking|automated load testing tools]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)