Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Web server
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Web server
(section)
Add topic