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
Apache HTTP 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!
==Performance== Instead of implementing a single architecture, Apache provides a variety of MultiProcessing Modules (MPMs), which allow it to run in either a [[Process (computing)|process]]-based mode, a hybrid (process and [[Thread (computing)|thread]]) mode, or an event-hybrid mode, in order to better match the demands of each particular infrastructure. Choice of MPM and configuration is therefore important. Where compromises in performance must be made, Apache is designed to reduce [[Latency (engineering)#Computer hardware and operating systems|latency]] and increase [[throughput]] relative to simply handling more requests, thus ensuring consistent and reliable processing of requests within reasonable time-frames.{{clarify |date=August 2018}}<!--It isn't clear to a non-specialist like me why increasing throughput is different from handling more requests or why reducing latency (which sounds like increasing speed) wouldn't enable you to handle more requests. It also isn't clear how either of these represent a compromise in performance. Also, is Apache doing something that decreases latency and increases throughput _relative_ to what you would get by handling more requests, or is it decreasing latency and increasing throughput _rather_ than handling more requests? If the latter, "rather than" should replace "relative to" in that sentence.--> For delivering static pages, Apache 2.2 series was considered significantly slower than [[nginx]] and [[Varnish (software)|varnish]].<ref>{{cite web|url=http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/|title=Serving static files: a comparison between Apache, Nginx, Varnish and G-WAN|work=Spoot!|date=14 March 2011|access-date=23 April 2014|archive-date=24 April 2014|archive-url=https://web.archive.org/web/20140424234153/http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/|url-status=live}}</ref> To address this issue, the Apache developers created the Event MPM, which mixes the use of several processes and several threads per process in an [[Asynchrony (computer programming)|asynchronous]] [[Event loop|event-based loop]].<ref>{{cite web|url=https://httpd.apache.org/docs/2.2/mod/worker.html|title=worker - Apache HTTP Server Version 2.2|work=apache.org|access-date=2021-05-12|archive-date=2021-05-10|archive-url=https://web.archive.org/web/20210510050745/https://httpd.apache.org/docs/2.2/mod/worker.html|url-status=live}}</ref>{{clarify |date=August 2018 |reason=Mixes the use of xyz with what? Or, if (a) several processes and (b) several processes per thread are the things being mixed, the sentence should read "...Event MPM, which uses several processes and several threads per process...". Also, can someone with more technical knowledge please explain why this approach is advantageous?}} This architecture as implemented in the Apache 2.4 series performs at least as well as event-based web servers, according to [[Jim Jagielski]] and other independent sources.<ref>{{cite web| url = http://people.apache.org/~jim/presos/ACNA11/Apache_httpd_cloud.pdf| title = Apache httpd 2.4| access-date = 2012-02-08| archive-date = 2012-01-27| archive-url = https://web.archive.org/web/20120127033804/http://people.apache.org/~jim/presos/ACNA11/Apache_httpd_cloud.pdf| url-status = live}}</ref><ref>{{cite web|url=http://www.slideshare.net/bryan_call/choosing-a-proxy-server-apachecon-2014|title=Picking a Proxy Server|date=14 April 2014|access-date=19 February 2016|archive-date=3 March 2016|archive-url=https://web.archive.org/web/20160303105755/http://www.slideshare.net/bryan_call/choosing-a-proxy-server-apachecon-2014|url-status=live}}</ref><ref>{{cite web|url=http://blog.matsumoto-r.jp/?p=1812|title=Throughput evaluation of Apache 2.4.1|date=22 February 2012 |access-date=2016-02-19|archive-date=2016-03-02|archive-url=https://web.archive.org/web/20160302133533/http://blog.matsumoto-r.jp/?p=1812|url-status=live}}</ref> However, some independent but significantly outdated benchmarks show that it is still half as fast as nginx, e.g.<ref>{{cite web|url=http://www.eschrade.com/page/performance-of-apache-2-4-with-the-event-mpm-compared-to-nginx/|title=Performance of Apache 2.4 with the event MPM compared to Nginx|work=eschrade.com|date=3 January 2014|access-date=13 March 2014|archive-date=13 March 2014|archive-url=https://web.archive.org/web/20140313213901/http://www.eschrade.com/page/performance-of-apache-2-4-with-the-event-mpm-compared-to-nginx/|url-status=live}}</ref>
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
Apache HTTP Server
(section)
Add topic