SlideShare a Scribd company logo
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
Who am I
System Architect
Team Lead
PHP Developer
Find me on
@alexhelkar
alexhelkar
https://github.com/alexhelkar
Performance
Story
Canvas
PHP 7.0.8
Digital Ocean 5$ Droplet
Symfony 3 Demo Application
Yandex Tank
[phantom]
address=555.166.5.74 ; fake ip
port=80 ;target port
rps_schedule=step(20, 60, 10, 30s) const(1, 30s) ;load scheme
uris = /ru/blog/
Yandex Tank Config
Results
Results
Max. stable RPS: 50
Response time: ~20ms
PHP 7 facts
isset 1.55 times faster than array_key_exists
is_file 26 times faster than file_exists
single quotes slower that double quotes
instanceof faster is_a
etc.
Code performance?
Blackfire.io profile
Current results:
Total request time: 18.4 ms
file_exists called: 7 times
Exec. time for file_exists: 460 µs
Expected results:
Exec/ time: ~17.6 µs
Total request time: ~18.3996 ms
Perfomance
Response time?
Requests per second?
PHP lang performance
...овно?
OR
...амно?
SLA
Story
Demo App
recall with $$
Infrastructures scaling
5$
RAM: 512
CPU: 1
HDD: 20
50 RPS
App Server
10$
50 RPS
App Server
RAM: 1024
CPU: 1
HDD: 30
50 RPS
App Server
RAM: 512
CPU: 1
HDD: 20
LB Server
RAM: 512
CPU: 1
HDD: 20
15$
100 RPS
App Server
50 RPS
App Server LB Server
5$
App Server
RAM: 512
CPU: 1
HDD: 20
RAM: 512
CPU: 1
HDD: 20
RAM: 512
CPU: 1
HDD: 20
RAM: 1024
CPU: 1
HDD: 30
20$
160 RPS
App Server
120 RPS
App Server LB Server
App Server
App Server
RAM: 2048
CPU: 2
HDD: 40
RAM: 512
CPU: 1
HDD: 20
RAM: 512
CPU: 1
HDD: 20
RAM: 512
CPU: 1
HDD: 20
RAM: 512
CPU: 1
HDD: 20
Summary
Often hardware is cheaper than software
Often scaling is cheaper than tuning
Often horizontal scaling wins vertical scaling
Often applications are not scalable :(
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
Load Balancer Pattern
Examples
Kubernetes Services
Microservices
etc
Good to know
HAProxy TCP and HTTP Load Balancing
Nginx HTTP Load Balancing
Message Queue-Based Load Balancing
MQ Balancing
Story
MQ Balancing
Consumer retries
API Gateway
Benefits we've got
Advanced routing of requests
Advanced routing of responses
Workers could be added dynamically without LB
reconfig
Buffer size by queue limit
Back pressure by message TTL
Scaling out
Story
Generic Web App
Perfomance
Requests per second
(concurrency)
DNS Load Distribution
DNS Load Distribution
DNS Cache
Rule of Thumb: Add LB
What if?
Floating IP
Perfomance
Response time
(reads)
Reads Flow
DB Cache
Application Cache
Application Cache Candidates
Memcached (sessions, k/v data)
sessions
k/v data
Redis
k/v data
leaderboards
durability
replication
* Manual sharding both cases
Web Cache
Cache: Rule of thumb
IF Application is SLOW
Enable Caching
IF Application has GLITCHES
Disable Caching
Perfomance
Response time
(writes)
Cirquit Breaker
Fire & Forget
MySQL
Database Perfomance
MySQL
Story of 100 servers
MongoDB
Chose correct sharding key
Apache Cassandra
Linear writes
Apache Cassandra
Life story
Apache Kafka
2 billions messages on 3
machines
Distributed Locks
Consul || etcd || Zookeeper
Instead Summary
Scalability as afterwords doesn't work
Database is not a queue
Database is not a lock system
Redis is not a queue
MySQL master is always SPOF
Load balancers as a must
Linear disk writes wins
Perfomance in PHP is done by everything except PHP
Being distributed is fucking hard
Questions?
Find me on
@alexhelkar
alexhelkar
https://github.com/alexhelkar

More Related Content

PDF
Xanadu - Java Chapter Meeting
PDF
"Развитие ветки PHP-7"
PPTX
HHVM: Efficient and Scalable PHP/Hack Execution / Guilherme Ottoni (Facebook)
PDF
Fuzzing: The New Unit Testing
PDF
Hypertable Nosql
PDF
ClojureScript: The Good Parts
PDF
Better rspec 進擊的 RSpec
PDF
Asynchronous single page applications without a line of HTML or Javascript, o...
Xanadu - Java Chapter Meeting
"Развитие ветки PHP-7"
HHVM: Efficient and Scalable PHP/Hack Execution / Guilherme Ottoni (Facebook)
Fuzzing: The New Unit Testing
Hypertable Nosql
ClojureScript: The Good Parts
Better rspec 進擊的 RSpec
Asynchronous single page applications without a line of HTML or Javascript, o...

What's hot (20)

PDF
DaNode - A home made web server in D
PDF
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
PPT
Server side JavaScript: going all the way
PPTX
All you need to know about the JavaScript event loop
PDF
PostgreSQL and Compressed Documents (pgconf.ru 2018)
PDF
Odoo Online platform: architecture and challenges
DOCX
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
PDF
用 Go 語言打造多台機器 Scale 架構
PDF
PHP, Under The Hood - DPC
PPT
JS everywhere 2011
PPT
Node js presentation
PDF
Redesigning Common Lisp
KEY
Node.js - Best practices
PDF
Node.js Stream API
PDF
Streams in Node.js
PDF
PDF
Go debugging and troubleshooting tips - from real life lessons at SignalFx
PDF
Skiron - Experiments in CPU Design in D
PDF
CRUFT! - Peter Kriens, President, aQute
PDF
Practical REPL-driven Development with Clojure
DaNode - A home made web server in D
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Server side JavaScript: going all the way
All you need to know about the JavaScript event loop
PostgreSQL and Compressed Documents (pgconf.ru 2018)
Odoo Online platform: architecture and challenges
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
用 Go 語言打造多台機器 Scale 架構
PHP, Under The Hood - DPC
JS everywhere 2011
Node js presentation
Redesigning Common Lisp
Node.js - Best practices
Node.js Stream API
Streams in Node.js
Go debugging and troubleshooting tips - from real life lessons at SignalFx
Skiron - Experiments in CPU Design in D
CRUFT! - Peter Kriens, President, aQute
Practical REPL-driven Development with Clojure
Ad

Viewers also liked (20)

PDF
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
PDF
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
PDF
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
ODP
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
PDF
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
PDF
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
PDF
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
PDF
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
PDF
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
PDF
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
PDF
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
PDF
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
PDF
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
PDF
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
PDF
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
PDF
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
PDF
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
PDF
WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции ...
PDF
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
PDF
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции ...
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
Ad

Similar to WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox (20)

PPT
Velocity 2010 - ATS
KEY
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
PDF
Alternative Infrastucture
ODP
Clug 2011 March web server optimisation
PPT
Scalable Apache for Beginners
PPT
An Introduction to Websphere sMash for PHP Programmers
ODP
Asynchronous I/O in NodeJS - new standard or challenges?
PPTX
Full Stack Load Testing
PDF
Globo.com & Varnish
PPT
No More Hops Towards A Linearly Scalable Application Infrastructure
PPT
W-JAX Performance Workshop - Web and AJAX
PPTX
Where is my scalable api?
PPT
PHP on Windows 2008
PDF
Making it fast: Zotonic & Performance
KEY
Using Apache as an Application Server
PDF
Running php on nginx
PDF
Tbp
PDF
Server Monitoring (Scaling while bootstrapped)
PPTX
Rit 2011 ats
PPT
WE18_Performance_Up.ppt
Velocity 2010 - ATS
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Alternative Infrastucture
Clug 2011 March web server optimisation
Scalable Apache for Beginners
An Introduction to Websphere sMash for PHP Programmers
Asynchronous I/O in NodeJS - new standard or challenges?
Full Stack Load Testing
Globo.com & Varnish
No More Hops Towards A Linearly Scalable Application Infrastructure
W-JAX Performance Workshop - Web and AJAX
Where is my scalable api?
PHP on Windows 2008
Making it fast: Zotonic & Performance
Using Apache as an Application Server
Running php on nginx
Tbp
Server Monitoring (Scaling while bootstrapped)
Rit 2011 ats
WE18_Performance_Up.ppt

More from WebCamp (10)

PDF
WebCamp 2016: Python.Максим Климишин.Типизированный Python
PDF
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
PDF
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
PDF
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
PDF
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
PDF
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
PPTX
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
PDF
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
PDF
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
PDF
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
WebCamp 2016: Python.Максим Климишин.Типизированный Python
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...

Recently uploaded (20)

PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Machine learning based COVID-19 study performance prediction
madgavkar20181017ppt McKinsey Presentation.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
GamePlan Trading System Review: Professional Trader's Honest Take
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The AUB Centre for AI in Media Proposal.docx
Machine learning based COVID-19 study performance prediction

WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox