SlideShare a Scribd company logo
1 of 31
Download to read offline
Практика
применения
Pinba в Badoo
Денис Карасик d.karasik@corp.badoo.com
Badoo
● ~300 000 000 зарегистрированных пользователей
● ~70K rps в пике
● PHP, MySQL, C/C++, Golang, Tarantool etc.
PHP Is Not a Bottleneck Anymore
Авторы: Андрей Нигматулин, Антон Довгаль
• https://habrahabr.ru/company/badoo/blog/149695/ (Максим Матюхин, 2012 год)
• http://pinba.org/ (https://github.com/tony2001/pinba_engine/wiki ) Официальная документация
• https://habrahabr.ru/post/183104/ Intaro Pinboard
• https://habrahabr.ru/post/129042/ Мониторим PHP в реальном времени
• Написана на С (engine и php-extension)
• UDP
• MySQL engine
• НЕ является хранилищем данных!!!
• Nginx плагин (плагины для многих языков: Go, Java, Python, Ruby, etc)
Pinba примеры использования
Количество запросов
25K rps
Pinba примеры использования
Потребление памяти
8 Mb / request
Average script memory
Pinba примеры использования
Время запросов к внешним сервисам
Memcache get for memcache1.mlan:11211
• MAX 55272,258 req / sec
• AVG 29513,147 req / sec
• MIN 7978,757 req /sec
Pinba примеры использования
Nginx плагин
Requests for bphotos: 404 Not found
8 req / sec
13 req / sec
Pinba примеры использования
Pinba примеры использования
Go
PHP script
MySQL
memcache
memcache
Some logic
Timer1
Timer2
Timer1
Timer3
Timer4
Timer tags:
cmd_val — mcache::get
server_val — memcache1
Request tags: webpage — plain
Pinba: Raw tables
● request
● timer (id, request_id, hit_count, value)
● tag (id, name)
● timertag (timer_id, tag_id, value)
● active
● dictionary
● status
Не делаем запросы к request!!!
CREATE TABLE `request` (
`id` int(11) NOT NULL DEFAULT '0',
`hostname` varchar(32) DEFAULT NULL,
`req_count` int(11) DEFAULT NULL,
`server_name` varchar(64) DEFAULT NULL,
`script_name` varchar(128) DEFAULT NULL,
`doc_size` float DEFAULT NULL,
`mem_peak_usage` float DEFAULT NULL,
`req_time` float DEFAULT NULL,
`ru_utime` float DEFAULT NULL,
`ru_stime` float DEFAULT NULL,
`timers_cnt` int(11) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`memory_footprint` float DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='request' |
Pinba: отчеты
• Base (info, report_by ….)
• Timer tag (tag_info, tagN_info, tag_report, tagN_report ... )
• Request tag (rtag_info, rtag_report, rtagN_info, rtagN_report)
scripts/table_generator.php - генератор отчетов!
Агрегация по hostname, schema, script_name, server_name, status*
*
Pinba: отчеты
CREATE TABLE `tag_report_perf` (
`script_name` varchar(128) NOT NULL DEFAULT '',
`tag_value` varchar(64) DEFAULT NULL,
`req_count` int(11) DEFAULT NULL,
`req_per_sec` float DEFAULT NULL,
`hit_count` int(11) DEFAULT NULL,
`hit_per_sec` float DEFAULT NULL,
`timer_value` float DEFAULT NULL,
`timer_median` float DEFAULT NULL,
`ru_utime_value` float DEFAULT NULL,
`ru_stime_value` float DEFAULT NULL,
`index_value` varchar(256) DEFAULT NULL,
`p75` float DEFAULT NULL,
`p95` float DEFAULT NULL,
`p99` float DEFAULT NULL,
`p100` float DEFAULT NULL,
KEY `script_name` (`script_name`)
) ENGINE=PINBA DEFAULT CHARSET=latin1
COMMENT='tag_report:perf::75,95,99,100' |
Важен порядок полей!!!
Pinba: Отчеты по тегам (timer)
CREATE TABLE `tag_info_measure_cpq_consumer` (
`type` varchar(64) DEFAULT NULL,
`consumer` varchar(64) DEFAULT NULL,
`timer` varchar(64) DEFAULT NULL,
….
) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tagN_info:type,consumer,timer'
3 sec
5 sec
Javascript is Not a Bottleneck Anymore
• https://tech.badoo.com/presentation/123/realtime-statistika-skorosti-prilogenij/ Павел Довбуш о Jinba
• https://github.com/dpp-name/jinba Jinba
Pinba для Jinba
• tagN_info — отчеты по многим тегам
• Перцентили
• Гистограммы
• Фильтрация по тегам реквеста
Pinba: гистограммы
CREATE TABLE `v2_jinba_hv` (
`index_value` varchar(256) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`segment` int(11) DEFAULT NULL,
`time_value` float DEFAULT NULL,
`cnt` int(11) DEFAULT NULL,
`percent` float DEFAULT NULL,
KEY `index_value` (`index_value`(85))
) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='hv.tagN_info:group,mode::75,95'
Pinba: перцентили
CREATE TABLE `tag_info_group_server` (
`group_value` varchar(64) DEFAULT NULL,
`server_value` varchar(64) DEFAULT NULL,
…
`p75` float DEFAULT NULL,
`p95` float DEFAULT NULL,
`p99` float DEFAULT NULL,
`p100` float DEFAULT NULL
) ENGINE=PINBA DEFAULT CHARSET=latin1
COMMENT='tag2_info:group,server::75,95,99,100'
t, sec
num
Pinba: перцентили
Pinba: отчеты request tag
CREATE TABLE `photoscache_report_hitrate` (
`hostname` varchar(64) NOT NULL DEFAULT '',
`tag1_value` varchar(64) DEFAULT NULL,
`tag2_value` varchar(64) DEFAULT NULL,
`tag3_value` varchar(64) DEFAULT NULL,
...
KEY `hostname` (`hostname`)
) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='rtagN_report:served_by,build,img_size'
Pinba: отчеты request tag
http://hostname/10035/3/2/1/28245345/d1576/t1461674977/156839_920.jpg?fit=500x500
location ~ '…..' {
...
pinba_tag fit_size '500x500';
pinba_tag is_fit 1;
pinba_tag img_size '920';
...
}
Nginx (https://github.com/tony2001/ngx_http_pinba_module)
Pinba: отчеты request tag
CREATE TABLE `resize_value_info` (
`tag_value` varchar(64) DEFAULT NULL,
`req_count` int(11) DEFAULT NULL,
`req_per_sec` float DEFAULT NULL,
...
) ENGINE=PINBA DEFAULT CHARSET=latin1
COMMENT='rtag_info:fit_size'
select tag_value, req_per_sec from resize_value_info order by req_per_sec desc limit 10;
+-------------+------------------+
| tag_value | req_per_sec |
+-------------+------------------+
| 180/180 | 6986.65 |
| 144/144 | 3455.3 |
| 920/920 | 2932.37 |
| 216/216 | 1464.49 |
| 640/960 | 1145.66 |
| 120/120 | 1138.95 |
| 192/192 | 1004.72 |
| 480/800 | 1001.44 |
| 72/72 | 935.625 |
| 110/110 | 917.83 |
+-------------+------------------+
MySQL Is Not a Bottleneck Anymore
• Slowlog + Zabbix
MySQL Is Not a Bottleneck Anymore
• Slowlog + Zabbix
• Коммерческие решения
MySQL Is Not a Bottleneck Anymore
• Slowlog + Zabbix
• Коммерческие решения
• performance_schema + python + elastic + kibana
MySQL Is Not a Bottleneck Anymore
• Slowlog + Zabbix
• Коммерческие решения
• performance_schema + python + elastic + kibana
• Pinba
MySQL Is Not a Bottleneck Anymore
PHP Pinba
CREATE TABLE `minba_query_details` (
`tag_value` varchar(64) DEFAULT NULL,
...
`p95` float DEFAULT NULL,
`p99` float DEFAULT NULL
) ENGINE=PINBA DEFAULT CHARSET=latin1
COMMENT='tag_info:query::95,99'
MySQL Is Not a Bottleneck Anymore
Memcache keys stat
Формат ключа: #family_name#:%s_%s
cont:251_23
folder_key:13434_sometype
tag_info_key_hit_mchost | CREATE TABLE `tag_info_key_hit_mchost` (
`key` varchar(190) DEFAULT NULL,
`hit` tinyint(1) DEFAULT NULL,
`mchost` varchar(40) DEFAULT NULL,
...
) ENGINE=PINBA DEFAULT CHARSET=latin1
COMMENT='tagN_info:key,hit,mchost'
Memcache keys stat
Memcache keys stat
400 K rps
Контакты
Карасик Денис d.karasik@corp.badoo.com
Антон Довгаль tony@corp.badoo.com
Техноблог https://tech.badoo.com/
Хабр https://habrahabr.ru/company/badoo/
Facebook https://www.facebook.com/BadooMoscow

More Related Content

What's hot

MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)Ontico
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Ontico
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Ontico
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Ontico
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Ontico
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Pavel Dovbush
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Fwdays
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)Ontico
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Fwdays
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Ontico
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на GoAndrey Smirnov
 

What's hot (20)

Mysql vs postgresql
Mysql vs postgresqlMysql vs postgresql
Mysql vs postgresql
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
 
SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)SOA: строим свой service mesh / Иван Круглов (Booking.com)
SOA: строим свой service mesh / Иван Круглов (Booking.com)
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
 
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
Чем заняться вечером, если я знаю сколько будет ++i + ++i / Андрей Бородин (Y...
 
pgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresqlpgconf.ru 2015 avito postgresql
pgconf.ru 2015 avito postgresql
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015Jinba - frontendconf.ru/2015
Jinba - frontendconf.ru/2015
 
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...PostgreSQL: практические примеры оптимизации SQL-запросов /  Иван Фролков (Po...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
Zabbix v2
Zabbix v2Zabbix v2
Zabbix v2
 
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
Yevgen Lysenko "AWS RDS Aurora Serverless, ECS Fargate and more serverless-pr...
 
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
Строим сервисы на базе Nginx и Tarantool / Василий Сошников, Андрей Дроздов (...
 
Консольные приложения на Go
Консольные приложения на GoКонсольные приложения на Go
Консольные приложения на Go
 

Viewers also liked

Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)Ontico
 
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Ontico
 
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)Ontico
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Ontico
 
HSE_CX_Me_Here_Now_VK2
HSE_CX_Me_Here_Now_VK2HSE_CX_Me_Here_Now_VK2
HSE_CX_Me_Here_Now_VK2mikeshagiev
 
Valve CPQ challenges & solutions
Valve CPQ challenges & solutionsValve CPQ challenges & solutions
Valve CPQ challenges & solutionsSanjeev Nadkarni
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)Ontico
 
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...Ontico
 
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Ontico
 
Integrated CPQ and CLM White Paper
Integrated CPQ and CLM White PaperIntegrated CPQ and CLM White Paper
Integrated CPQ and CLM White PaperJeremy Cotton
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)Ontico
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
 
Air & Refrigeration Compressors – sizing & selection software
Air & Refrigeration Compressors – sizing & selection softwareAir & Refrigeration Compressors – sizing & selection software
Air & Refrigeration Compressors – sizing & selection softwareSanjeev Nadkarni
 
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...Ontico
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Badoo Development
 
Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Ontico
 
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Ontico
 
Configure-Price-Quote (CPQ) Software Solutions
Configure-Price-Quote (CPQ) Software SolutionsConfigure-Price-Quote (CPQ) Software Solutions
Configure-Price-Quote (CPQ) Software SolutionsPieter Fourie
 
Configure Price Quote as an Agent for Change
Configure Price Quote as an Agent for ChangeConfigure Price Quote as an Agent for Change
Configure Price Quote as an Agent for ChangeApttus
 

Viewers also liked (20)

Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)Оптимизации уровня CPU,  Андрей Акиньшин (JetBrains)
Оптимизации уровня CPU, Андрей Акиньшин (JetBrains)
 
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
 
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)
Платежная система за год / Филипп Дельгядо (Информационные технологии и системы)
 
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
Распределенные системы в Одноклассниках / Олег Анастасьев (Одноклассники)
 
HSE_CX_Me_Here_Now_VK2
HSE_CX_Me_Here_Now_VK2HSE_CX_Me_Here_Now_VK2
HSE_CX_Me_Here_Now_VK2
 
Valve CPQ challenges & solutions
Valve CPQ challenges & solutionsValve CPQ challenges & solutions
Valve CPQ challenges & solutions
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)
 
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...
UX-дизайнер, ты ли это. Навыки проектировщика в стилизации интерфейсов / Илья...
 
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
Amazing threesome, rrr... React. Redux. Real world / Ростислав Галкин (Babo)
 
Integrated CPQ and CLM White Paper
Integrated CPQ and CLM White PaperIntegrated CPQ and CLM White Paper
Integrated CPQ and CLM White Paper
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Air & Refrigeration Compressors – sizing & selection software
Air & Refrigeration Compressors – sizing & selection softwareAir & Refrigeration Compressors – sizing & selection software
Air & Refrigeration Compressors – sizing & selection software
 
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...
В погоне за производительностью. Психология пользователя / Денис Мишунов (Dig...
 
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...
 
Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)Что будет после web-scale / Максим Шапошников (Nutanix)
Что будет после web-scale / Максим Шапошников (Nutanix)
 
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
Мифы о выходе на рынок Азии. Опыт IT-компании / Ярослав Городецкий (CDNvideo)
 
QCards: Dynamics CRM and CPQ
QCards: Dynamics CRM and CPQQCards: Dynamics CRM and CPQ
QCards: Dynamics CRM and CPQ
 
Configure-Price-Quote (CPQ) Software Solutions
Configure-Price-Quote (CPQ) Software SolutionsConfigure-Price-Quote (CPQ) Software Solutions
Configure-Price-Quote (CPQ) Software Solutions
 
Configure Price Quote as an Agent for Change
Configure Price Quote as an Agent for ChangeConfigure Price Quote as an Agent for Change
Configure Price Quote as an Agent for Change
 

Similar to Практика применения Pinba в Badoo / Денис Карасик (Badoo)

Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Ontico
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-pythonAndrey Smirnov
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1m2rus
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
 
Паттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхПаттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхAndrey Karpov
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоFuenteovejuna
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Yandex
 
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019corehard_by
 
Цена ошибки
Цена ошибкиЦена ошибки
Цена ошибкиAndrey Karpov
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Roman Tsisyk
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Ontico
 
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Yandex
 
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...Mail.ru Group
 

Similar to Практика применения Pinba в Badoo / Денис Карасик (Badoo) (20)

введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
Smirnov twisted-python
Smirnov twisted-pythonSmirnov twisted-python
Smirnov twisted-python
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
Kranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenkoKranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenko
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1
 
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кодаSECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
 
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
 
Паттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играхПаттерны 64-битных ошибок в играх
Паттерны 64-битных ошибок в играх
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
 
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019
Раскручиваем стек. Иван Пономарев. CoreHard Spring 2019
 
Цена ошибки
Цена ошибкиЦена ошибки
Цена ошибки
 
Цена ошибки
Цена ошибкиЦена ошибки
Цена ошибки
 
Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25Tarantool Modules, Tarantool Meetup 2016-08-25
Tarantool Modules, Tarantool Meetup 2016-08-25
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"
 
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
 

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...
 

Практика применения Pinba в Badoo / Денис Карасик (Badoo)

  • 1. Практика применения Pinba в Badoo Денис Карасик d.karasik@corp.badoo.com
  • 2. Badoo ● ~300 000 000 зарегистрированных пользователей ● ~70K rps в пике ● PHP, MySQL, C/C++, Golang, Tarantool etc.
  • 3. PHP Is Not a Bottleneck Anymore Авторы: Андрей Нигматулин, Антон Довгаль • https://habrahabr.ru/company/badoo/blog/149695/ (Максим Матюхин, 2012 год) • http://pinba.org/ (https://github.com/tony2001/pinba_engine/wiki ) Официальная документация • https://habrahabr.ru/post/183104/ Intaro Pinboard • https://habrahabr.ru/post/129042/ Мониторим PHP в реальном времени • Написана на С (engine и php-extension) • UDP • MySQL engine • НЕ является хранилищем данных!!! • Nginx плагин (плагины для многих языков: Go, Java, Python, Ruby, etc)
  • 5. Pinba примеры использования Потребление памяти 8 Mb / request Average script memory
  • 6. Pinba примеры использования Время запросов к внешним сервисам Memcache get for memcache1.mlan:11211 • MAX 55272,258 req / sec • AVG 29513,147 req / sec • MIN 7978,757 req /sec
  • 7. Pinba примеры использования Nginx плагин Requests for bphotos: 404 Not found 8 req / sec 13 req / sec
  • 10. Go PHP script MySQL memcache memcache Some logic Timer1 Timer2 Timer1 Timer3 Timer4 Timer tags: cmd_val — mcache::get server_val — memcache1 Request tags: webpage — plain
  • 11. Pinba: Raw tables ● request ● timer (id, request_id, hit_count, value) ● tag (id, name) ● timertag (timer_id, tag_id, value) ● active ● dictionary ● status Не делаем запросы к request!!! CREATE TABLE `request` ( `id` int(11) NOT NULL DEFAULT '0', `hostname` varchar(32) DEFAULT NULL, `req_count` int(11) DEFAULT NULL, `server_name` varchar(64) DEFAULT NULL, `script_name` varchar(128) DEFAULT NULL, `doc_size` float DEFAULT NULL, `mem_peak_usage` float DEFAULT NULL, `req_time` float DEFAULT NULL, `ru_utime` float DEFAULT NULL, `ru_stime` float DEFAULT NULL, `timers_cnt` int(11) DEFAULT NULL, `status` int(11) DEFAULT NULL, `memory_footprint` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='request' |
  • 12. Pinba: отчеты • Base (info, report_by ….) • Timer tag (tag_info, tagN_info, tag_report, tagN_report ... ) • Request tag (rtag_info, rtag_report, rtagN_info, rtagN_report) scripts/table_generator.php - генератор отчетов! Агрегация по hostname, schema, script_name, server_name, status* *
  • 13. Pinba: отчеты CREATE TABLE `tag_report_perf` ( `script_name` varchar(128) NOT NULL DEFAULT '', `tag_value` varchar(64) DEFAULT NULL, `req_count` int(11) DEFAULT NULL, `req_per_sec` float DEFAULT NULL, `hit_count` int(11) DEFAULT NULL, `hit_per_sec` float DEFAULT NULL, `timer_value` float DEFAULT NULL, `timer_median` float DEFAULT NULL, `ru_utime_value` float DEFAULT NULL, `ru_stime_value` float DEFAULT NULL, `index_value` varchar(256) DEFAULT NULL, `p75` float DEFAULT NULL, `p95` float DEFAULT NULL, `p99` float DEFAULT NULL, `p100` float DEFAULT NULL, KEY `script_name` (`script_name`) ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tag_report:perf::75,95,99,100' | Важен порядок полей!!!
  • 14. Pinba: Отчеты по тегам (timer) CREATE TABLE `tag_info_measure_cpq_consumer` ( `type` varchar(64) DEFAULT NULL, `consumer` varchar(64) DEFAULT NULL, `timer` varchar(64) DEFAULT NULL, …. ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tagN_info:type,consumer,timer' 3 sec 5 sec
  • 15. Javascript is Not a Bottleneck Anymore • https://tech.badoo.com/presentation/123/realtime-statistika-skorosti-prilogenij/ Павел Довбуш о Jinba • https://github.com/dpp-name/jinba Jinba Pinba для Jinba • tagN_info — отчеты по многим тегам • Перцентили • Гистограммы • Фильтрация по тегам реквеста
  • 16. Pinba: гистограммы CREATE TABLE `v2_jinba_hv` ( `index_value` varchar(256) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `segment` int(11) DEFAULT NULL, `time_value` float DEFAULT NULL, `cnt` int(11) DEFAULT NULL, `percent` float DEFAULT NULL, KEY `index_value` (`index_value`(85)) ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='hv.tagN_info:group,mode::75,95'
  • 17. Pinba: перцентили CREATE TABLE `tag_info_group_server` ( `group_value` varchar(64) DEFAULT NULL, `server_value` varchar(64) DEFAULT NULL, … `p75` float DEFAULT NULL, `p95` float DEFAULT NULL, `p99` float DEFAULT NULL, `p100` float DEFAULT NULL ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tag2_info:group,server::75,95,99,100' t, sec num
  • 19. Pinba: отчеты request tag CREATE TABLE `photoscache_report_hitrate` ( `hostname` varchar(64) NOT NULL DEFAULT '', `tag1_value` varchar(64) DEFAULT NULL, `tag2_value` varchar(64) DEFAULT NULL, `tag3_value` varchar(64) DEFAULT NULL, ... KEY `hostname` (`hostname`) ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='rtagN_report:served_by,build,img_size'
  • 20. Pinba: отчеты request tag http://hostname/10035/3/2/1/28245345/d1576/t1461674977/156839_920.jpg?fit=500x500 location ~ '…..' { ... pinba_tag fit_size '500x500'; pinba_tag is_fit 1; pinba_tag img_size '920'; ... } Nginx (https://github.com/tony2001/ngx_http_pinba_module)
  • 21. Pinba: отчеты request tag CREATE TABLE `resize_value_info` ( `tag_value` varchar(64) DEFAULT NULL, `req_count` int(11) DEFAULT NULL, `req_per_sec` float DEFAULT NULL, ... ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='rtag_info:fit_size' select tag_value, req_per_sec from resize_value_info order by req_per_sec desc limit 10; +-------------+------------------+ | tag_value | req_per_sec | +-------------+------------------+ | 180/180 | 6986.65 | | 144/144 | 3455.3 | | 920/920 | 2932.37 | | 216/216 | 1464.49 | | 640/960 | 1145.66 | | 120/120 | 1138.95 | | 192/192 | 1004.72 | | 480/800 | 1001.44 | | 72/72 | 935.625 | | 110/110 | 917.83 | +-------------+------------------+
  • 22. MySQL Is Not a Bottleneck Anymore • Slowlog + Zabbix
  • 23. MySQL Is Not a Bottleneck Anymore • Slowlog + Zabbix • Коммерческие решения
  • 24. MySQL Is Not a Bottleneck Anymore • Slowlog + Zabbix • Коммерческие решения • performance_schema + python + elastic + kibana
  • 25. MySQL Is Not a Bottleneck Anymore • Slowlog + Zabbix • Коммерческие решения • performance_schema + python + elastic + kibana • Pinba
  • 26. MySQL Is Not a Bottleneck Anymore PHP Pinba CREATE TABLE `minba_query_details` ( `tag_value` varchar(64) DEFAULT NULL, ... `p95` float DEFAULT NULL, `p99` float DEFAULT NULL ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tag_info:query::95,99'
  • 27. MySQL Is Not a Bottleneck Anymore
  • 28. Memcache keys stat Формат ключа: #family_name#:%s_%s cont:251_23 folder_key:13434_sometype tag_info_key_hit_mchost | CREATE TABLE `tag_info_key_hit_mchost` ( `key` varchar(190) DEFAULT NULL, `hit` tinyint(1) DEFAULT NULL, `mchost` varchar(40) DEFAULT NULL, ... ) ENGINE=PINBA DEFAULT CHARSET=latin1 COMMENT='tagN_info:key,hit,mchost'
  • 31. Контакты Карасик Денис d.karasik@corp.badoo.com Антон Довгаль tony@corp.badoo.com Техноблог https://tech.badoo.com/ Хабр https://habrahabr.ru/company/badoo/ Facebook https://www.facebook.com/BadooMoscow