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
Apache HTTP 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!
==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>
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)