SlideShare a Scribd company logo
Pushing PHP to the Limit: 
Web Server PHP Performance Comparisons 
LiteSpeed vs. Apache vs. NGINX
Breakdown of the presentation 
1. Overview of technology discussed 
2. Benchmarks 
3. Different PHP setups in LiteSpeed Web 
Server (LSAPI) 
4. Questions
Web Servers
Web servers (discussed) 
● Apache (httpd) 
● NGINX 
● LiteSpeed Web Server (LSWS) 
● OpenLiteSpeed
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
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.)
PHP
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.)
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
SAPIs 
Server Application Programming Interfaces
What is an SAPI? 
An interface for communicating with an 
application (like the PHP engine).
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.
suEXEC? 
Running scripts as a separate user (often 
one user per virtual host).
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
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
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
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
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
The Benchmarks
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)
Benchmark 1 
LSWS vs. NGINX for small PHP scripts (new)
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
Benchmark 1 results (no keep alive)
Benchmark 1 results (keep alive)
Benchmark 1 takeaways 
LSWS outperformed NGINX: 
● by 26% with keep alive connections off 
● by 91% with keep alive connections on
Benchmark 2 
LSWS vs. OpenLiteSpeed vs. Apache vs. NGINX for 
small PHP scripts (previously published)
Setup 
Server: 
● Intel Xeon E5-1620 Quad Core @ 3.60GHz (limited to 1 
core) 
● 8GB RAM 
Configs mostly defaults. Full configs can be found on our 
site. 
AB: 
ab_new -n 50000 -c 100
Benchmark 2 results 
(no keep alive)
Benchmark 2 results (keep alive)
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
Benchmark 3 
LSWS vs. Apache for WordPress 
(courtesy of Tristan Wallace, cPanel)
Setup 
VPS: 
● 1 core 
● 1GB RAM 
Dedicated server: 
● 4 cores 
● 8GB RAM
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
Benchmark Wrapup 
What have we learned?
What happened? 
● Basically, LSWS and OpenLiteSpeed beat 
all comers by at least 25% 
● The difference was most pronounced vs. 
Apache setups that use suEXEC
Why? 
● LSAPI is optimized 
● LSWS is built for performance and geared 
especially for performance with LSAPI
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
LSAPI 
What can you do with it?
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
LSAPI PHP Modes 
1.Worker 
2. Daemon 
3. ProcessGroup 
All can be suEXEC
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
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
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".
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
Setting up PHP ProcessGroup 
Add the following to an Apache 
configuration file: 
<IfModule LiteSpeed> 
LSPHP_ProcessGroup on 
LSPHP_Workers 15 
</IfModule>
Future improvements to LSAPI 
● Event-driven PHP processing 
● HHVM integration
Conclusions
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
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

More Related Content

What's hot

[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
Florian Koch - Monitoring CoreOS with Zabbix
Florian Koch - Monitoring CoreOS with ZabbixFlorian Koch - Monitoring CoreOS with Zabbix
Florian Koch - Monitoring CoreOS with Zabbix
Zabbix
 
Using Zabbix API from Drupal
Using Zabbix API from DrupalUsing Zabbix API from Drupal
Using Zabbix API from Drupal
Ricardo Santos
 
Phalcon Framework: San Antonio Web Developers Group
Phalcon Framework: San Antonio Web Developers Group Phalcon Framework: San Antonio Web Developers Group
Phalcon Framework: San Antonio Web Developers Group
jdfreeman11
 
OSS at Microsoft
OSS at MicrosoftOSS at Microsoft
OSS at Microsoft
weltling
 
Functional Programming in PHP
Functional Programming in PHPFunctional Programming in PHP
Functional Programming in PHP
Aurimas Niekis
 
Drush and drupal. администрирование волчек михаил
Drush and drupal. администрирование  волчек михаилDrush and drupal. администрирование  волчек михаил
Drush and drupal. администрирование волчек михаил
drupalconf
 
Symfony presentation
Symfony presentationSymfony presentation
Symfony presentation
maxpower57
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
Alessandro Cinelli (cirpo)
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
James Titcumb
 
WP-CLI Talk from WordCamp Montreal
WP-CLI Talk from WordCamp MontrealWP-CLI Talk from WordCamp Montreal
WP-CLI Talk from WordCamp Montreal
Shawn Hooper
 
About Caching
About CachingAbout Caching
About Caching
Weng Wei
 
Modern infrastructure as code with ansible cake fest 2021
Modern infrastructure as code with ansible cake fest 2021Modern infrastructure as code with ansible cake fest 2021
Modern infrastructure as code with ansible cake fest 2021
Joe Ferguson
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
Irfan Maulana
 
Afrimadoni the power of docker
Afrimadoni   the power of dockerAfrimadoni   the power of docker
Afrimadoni the power of docker
PHP Indonesia
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
Alessandro Cinelli (cirpo)
 
Engage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API SlidesEngage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API Slides
Paul Withers
 
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Ontico
 
Getting Started With WP REST API
Getting Started With WP REST APIGetting Started With WP REST API
Getting Started With WP REST API
Kishor Kumar
 

What's hot (20)

[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
 
Florian Koch - Monitoring CoreOS with Zabbix
Florian Koch - Monitoring CoreOS with ZabbixFlorian Koch - Monitoring CoreOS with Zabbix
Florian Koch - Monitoring CoreOS with Zabbix
 
Using Zabbix API from Drupal
Using Zabbix API from DrupalUsing Zabbix API from Drupal
Using Zabbix API from Drupal
 
Phalcon Framework: San Antonio Web Developers Group
Phalcon Framework: San Antonio Web Developers Group Phalcon Framework: San Antonio Web Developers Group
Phalcon Framework: San Antonio Web Developers Group
 
OSS at Microsoft
OSS at MicrosoftOSS at Microsoft
OSS at Microsoft
 
Functional Programming in PHP
Functional Programming in PHPFunctional Programming in PHP
Functional Programming in PHP
 
Drush and drupal. администрирование волчек михаил
Drush and drupal. администрирование  волчек михаилDrush and drupal. администрирование  волчек михаил
Drush and drupal. администрирование волчек михаил
 
Symfony presentation
Symfony presentationSymfony presentation
Symfony presentation
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
 
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
The State of PHP 2014 - Portsmouth Linux User Group (6th June 2014)
 
WP-CLI Talk from WordCamp Montreal
WP-CLI Talk from WordCamp MontrealWP-CLI Talk from WordCamp Montreal
WP-CLI Talk from WordCamp Montreal
 
About Caching
About CachingAbout Caching
About Caching
 
Modern infrastructure as code with ansible cake fest 2021
Modern infrastructure as code with ansible cake fest 2021Modern infrastructure as code with ansible cake fest 2021
Modern infrastructure as code with ansible cake fest 2021
 
PHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web Development
 
Afrimadoni the power of docker
Afrimadoni   the power of dockerAfrimadoni   the power of docker
Afrimadoni the power of docker
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Engage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API SlidesEngage 2014 OpenNTF Domino API Slides
Engage 2014 OpenNTF Domino API Slides
 
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
Modern Web App Development using ClojureScript & React.js / Baishampayan “BG”...
 
Getting Started With WP REST API
Getting Started With WP REST APIGetting Started With WP REST API
Getting Started With WP REST API
 

Similar to Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed technologies)

01 zingme practice for building scalable website with php
01 zingme practice for building scalable website with php01 zingme practice for building scalable website with php
01 zingme practice for building scalable website with php
Nguyen Duc Phu
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHP
Chau Thanh
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHP
Võ Duy Tuấn
 
zingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphpzingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphp
hazzaz
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
SiteGround.com
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
wruben
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Per Henrik Lausten
 
Daniel Sloof: Magento on HHVM
Daniel Sloof: Magento on HHVMDaniel Sloof: Magento on HHVM
Daniel Sloof: Magento on HHVM
Meet Magento Poland
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
Alessandro Pilotti
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
webhostingguy
 
(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems
sosorry
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with Nginx
Bud Siddhisena
 
Nginx pres
Nginx presNginx pres
Nginx pres
James Fuller
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation Testing
Shyam Sunder Verma
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
varien
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
MagentoImagine
 
Magento on HHVM. Daniel Sloof
Magento on HHVM. Daniel SloofMagento on HHVM. Daniel Sloof
Magento on HHVM. Daniel Sloof
MeetMagentoNY2014
 
Download It
Download ItDownload It
Download It
webhostingguy
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
Max Romanovsky
 
How PHP works
How PHP works How PHP works

Similar to Подталкиваем PHP к пределу возможностей, Michael Armstrong (lite speed technologies) (20)

01 zingme practice for building scalable website with php
01 zingme practice for building scalable website with php01 zingme practice for building scalable website with php
01 zingme practice for building scalable website with php
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHP
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHP
 
zingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphpzingmepracticeforbuildingscalablewebsitewithphp
zingmepracticeforbuildingscalablewebsitewithphp
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
Daniel Sloof: Magento on HHVM
Daniel Sloof: Magento on HHVMDaniel Sloof: Magento on HHVM
Daniel Sloof: Magento on HHVM
 
PHP and FastCGI Performance Optimizations
PHP and FastCGI Performance OptimizationsPHP and FastCGI Performance Optimizations
PHP and FastCGI Performance Optimizations
 
slides (PPT)
slides (PPT)slides (PPT)
slides (PPT)
 
(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems(phpconftw2012) PHP as a Middleware in Embedded Systems
(phpconftw2012) PHP as a Middleware in Embedded Systems
 
Scale Apache with Nginx
Scale Apache with NginxScale Apache with Nginx
Scale Apache with Nginx
 
Nginx pres
Nginx presNginx pres
Nginx pres
 
Joomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation TestingJoomla Code Quality Control and Automation Testing
Joomla Code Quality Control and Automation Testing
 
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
Magento Imagine eCommerce Conference February 2011: Optimizing Magento For Pe...
 
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
Magento's Imagine eCommerce Conference 2011 - Hosting Magento: Performance an...
 
Magento on HHVM. Daniel Sloof
Magento on HHVM. Daniel SloofMagento on HHVM. Daniel Sloof
Magento on HHVM. Daniel Sloof
 
Download It
Download ItDownload It
Download It
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
 
How PHP works
How PHP works How PHP works
How PHP works
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Recently uploaded

办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
uehowe
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
saathvikreddy2003
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
fovkoyb
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
ysasp1
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 

Recently uploaded (19)

办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
办理毕业证(NYU毕业证)纽约大学毕业证成绩单官方原版办理
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
Design Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptxDesign Thinking NETFLIX using all techniques.pptx
Design Thinking NETFLIX using all techniques.pptx
 
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
存档可查的(USC毕业证)南加利福尼亚大学毕业证成绩单制做办理
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
成绩单ps(UST毕业证)圣托马斯大学毕业证成绩单快速办理
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 

Подталкиваем 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.)
  • 7. PHP
  • 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
  • 10. SAPIs Server Application Programming Interfaces
  • 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.
  • 13. suEXEC? Running scripts as a separate user (often one user per virtual host).
  • 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)
  • 21. Benchmark 1 LSWS vs. NGINX for small PHP scripts (new)
  • 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
  • 23. Benchmark 1 results (no keep alive)
  • 24. Benchmark 1 results (keep alive)
  • 25. Benchmark 1 takeaways LSWS outperformed NGINX: ● by 26% with keep alive connections off ● by 91% with keep alive connections on
  • 26. Benchmark 2 LSWS vs. OpenLiteSpeed vs. Apache vs. NGINX for small PHP scripts (previously published)
  • 27. Setup Server: ● Intel Xeon E5-1620 Quad Core @ 3.60GHz (limited to 1 core) ● 8GB RAM Configs mostly defaults. Full configs can be found on our site. AB: ab_new -n 50000 -c 100
  • 28. Benchmark 2 results (no keep alive)
  • 29. Benchmark 2 results (keep alive)
  • 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)
  • 32. Setup VPS: ● 1 core ● 1GB RAM Dedicated server: ● 4 cores ● 8GB RAM
  • 33.
  • 34.
  • 35.
  • 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
  • 37. Benchmark Wrapup What have we learned?
  • 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
  • 41. LSAPI What can you do with it?
  • 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>
  • 49. Future improvements to LSAPI ● Event-driven PHP processing ● HHVM integration
  • 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