VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed technologies)
1. Pushing PHP to the Limit:
Web Server PHP Performance Comparisons
LiteSpeed vs. Apache vs. NGINX
2. Breakdown of the presentation
1. Overview of technology discussed
2. Benchmarks
3. Different PHP setups in LiteSpeed Web
Server (LSAPI)
4. Questions
4. Web servers (discussed)
● Apache (httpd)
● NGINX
● LiteSpeed Web Server (LSWS)
● OpenLiteSpeed
5. Differences between
OpenLiteSpeed and LSWS
OpenLiteSpeed:
● Uses OpenLiteSpeed-native configs exclusively
● Free and open source
LiteSpeed Web Server:
● Can use Apache configs (control panel compatible)
● Paid license system
6. Web servers (not discussed)
● Microsoft IIS
● Tomcat
● Lighty (lighttpd)
● Cherokee
● Others
Why not?
IIS is only for Windows and nobody uses the rest of these.
(Less than 0.5% of sites.)
8. Why PHP?
Because it is far and away the most used
scripting language on the Internet.
(82% of sites according to the latest
W3Techs survey.)
9. Web server-PHP interaction
● PHP is a scripting language
● Web servers do not process PHP directly
● PHP is processed by a PHP engine on the
backend
● Web servers use a variety of SAPIs to
communicate with the PHP engine
11. What is an SAPI?
An interface for communicating with an
application (like the PHP engine).
12. SAPIs for PHP (discussed)
1. mod_php (Apache)
2. CGI (Apache)
3. FCGI (Apache, NGINX, and LSWS)
4. LSAPI (LSWS and Apache*)
* mod_lsapi for Apache available only to CloudLinux users.
14. mod_php (DSO)
● Runs PHP as a module embedded in
Apache processes
● Requires no interprocess communication
● Can use persistent processes
● Fastest Apache implementation of PHP
● All scripts run as nobody
● Requires Apache prefork
15. CGI
● Used by Apache
● PHP run through external CGI module
● Creates a new process for each request
(lots of overhead)
● Slow and unscalable
● Can run suEXEC
16. FCGI (FastCGI)
● Used by Apache and NGINX
● Runs PHP as an external instance
● Created to be faster than CGI (less overhead)
● Persistent processes handle many requests
instead of creating a new process each time
● Saves CPU, but persistent processes can waste
RAM
● Can run suEXEC
17. LSAPI (LiteSpeed SAPI)
● Created because none of the previous
SAPIs gave the performance and control
we wanted
● External instance
● Similar layout to FCGI, but optimized
● Can run suEXEC
18. LSAPI Optimizations
● Utilizes web server request parsing results
for less overhead
● Persistent processes dynamically forked to
save resources
● Different modes of process handling for
different needs
● Allows per-directory configuration overrides
20. Three benchmarks
1. LSWS vs. NGINX for small PHP scripts (new and
unreleased)
1. LSWS vs. OpenLiteSpeed vs. Apache vs. NGINX for
small PHP scripts (previously published)
1. LSWS vs. Apache for WordPress (presented by
cPanel at cPanel Conference 2014, measured
speed and resource usage)
22. Setup
Server:
● Intel Xeon E5-1620 Quad Core @ 3.60GHz
● 8GB RAM
Configs mostly defaults with small amount of optimization
for NGINX. Full configs will be released on our site.
AB:
ab_new -n 50000 -c 100
30. Benchmark 2 takeaways
● LSWS and OpenLiteSpeed outperformed all
others
● Difference between LSWS and NGINX preserved
● Apache 2.2 with mod_PHP next fastest (about
50% slower than LSWS)
● LSAPI makes a 15-20% difference
● All web servers did better with keep-alive on
31. Benchmark 3
LSWS vs. Apache for WordPress
(courtesy of Tristan Wallace, cPanel)
36. Benchmark 3 takeaways
● Speed difference shown again, even with
other applications
● Resource advantage of event-driven
architecture (VPSs with Apache couldn't
even handle 50 concurrent connections)
● Resource advantage of LSAPI
38. What happened?
● Basically, LSWS and OpenLiteSpeed beat
all comers by at least 25%
● The difference was most pronounced vs.
Apache setups that use suEXEC
39. Why?
● LSAPI is optimized
● LSWS is built for performance and geared
especially for performance with LSAPI
40. Debate?
If you wish to debate these benchmarks, please contact
me or post to our forum. We are happy to try different
settings if there is good reason to believe they will make
a difference.
Forum: http://www.litespeedtech.com/support/forum/
Me: marmstrong@litespeedtech.com
42. LiteSpeed Server API
● API for communication with an application backend
● Open source
● Designed specifically for LSWS (for better integration)
● Highly optimized by default
● Offers three different modes of handling PHP
processes for different needs
● Allows for high-performance suEXEC setups
● Available for PHP, Ruby, and Python
http://www.litespeedtech.com/products/litespeed-sapi/php
43. LSAPI PHP Modes
1.Worker
2. Daemon
3. ProcessGroup
All can be suEXEC
44. Worker Mode
● Default mode
● Similar to PHP with CGI
● New process each time PHP is needed
● Creating new processes has overhead
● Can save resources because there are no
more processes than needed
● No effective suEXEC opcode caching
45. Daemon Mode
● Forks all processes from a persistent
parent process (even in suEXEC)
● Spawning child processes is faster than
creating new processes
● Allows for somewhat more effective
suEXEC opcode caching
46. Setting up Daemon Mode
WebAdmin console > Configuration >
External App > your LSPHP external
application:
1. Set Auto Start to "Yes".
2. Set Run On Start Up to "suEXEC Daemon".
47. ProcessGroup Mode
● Similar to PHP-FPM pools (except easy to set up)
● Really only for suEXEC settings
● One parent process for each user
● Parent process spawns child processes on demand
● Spawning child processes is faster than creating new
processes
● Allows for per-user opcode caching in a suEXEC setting
● Extra parent processes consume extra resources
● Not available for OpenLiteSpeed
48. Setting up PHP ProcessGroup
Add the following to an Apache
configuration file:
<IfModule LiteSpeed>
LSPHP_ProcessGroup on
LSPHP_Workers 15
</IfModule>
51. Conclusions
● LSWS and OpenLiteSpeed serve PHP 25-
100% faster than other major web
servers
● Partly due to LSAPI's optimization
● Partly due to LSWS and OpenLiteSpeed's
optimized integration with LSAPI
52. Conclusions (LSAPI)
● LSAPI = faster PHP
● LSAPI's suEXEC implementation allows for
speed and security
● LSAPI modes and config overrides allow
easy configuration for different uses
● Opcode caching even with suEXEC