|
|
(не показаны 4 промежуточные версии этого же участника) |
Строка 1: |
Строка 1: |
| == Аннотация == | | == Аннотация == |
− | ;Докладчик: [http://alexclear.moikrug.ru/ Александр Чистяков] | + | [[Категория:Александр Чистяков]] |
− | * http://juick.com/thegreatz/
| + | ;Докладчик: [[:Категория:Александр Чистяков|Александр Чистяков]] |
− | <blockquote>
| + | |
| | | |
| + | <blockquote> |
| '''Типичная ситуация:''' имеется существующий веб-проект, написанный с применением Linux, Apache, MySQL и PHP, и заказчик хочет сделать проект быстрее с наиболее полным сохранением функциональности. | | '''Типичная ситуация:''' имеется существующий веб-проект, написанный с применением Linux, Apache, MySQL и PHP, и заказчик хочет сделать проект быстрее с наиболее полным сохранением функциональности. |
| | | |
Строка 41: |
Строка 41: |
| | | |
| <!-- == Презентация == | | <!-- == Презентация == |
− | [[Файл:Оптимизация LAMP-приложения на примере OpenX: разгоняемся до 1000 запросов в секунду (Александр Чистяков, ADD-2011).pdf|center|640px]] | + | [[Файл:Оптимизация LAMP-приложения на примере OpenX: разгоняемся до 1000 запросов в секунду (Александр Чистяков, ADD-2011).pdf|page=-|left|256px]] |
| | | |
| --> | | --> |
Строка 52: |
Строка 52: |
| | | |
| <blockquote>Александр Чистяков полгода оптимизировал php-приложение, не меняя его код. Очень сжатый и по существу доклад, построенный по принципу серии доктора Хауса. [http://tonsky.livejournal.com/230112.html ©]</blockquote> | | <blockquote>Александр Чистяков полгода оптимизировал php-приложение, не меняя его код. Очень сжатый и по существу доклад, построенный по принципу серии доктора Хауса. [http://tonsky.livejournal.com/230112.html ©]</blockquote> |
| + | |
| + | <blockquote>Выступление Александра Чистякова с разгоном LAMP до второй космической скорости вообще целиком состояло из трюков и ощущалось как детективный сериал «Спрут». То мы их, то они нас, и таких двести итераций. Интересно, но несколько однообразно. [http://ptiz-kem.livejournal.com/67244.html ©]</blockquote> |
| + | |
| | | |
| {{include-review|ADD 2011: Отчет Василия Маслова/Оптимизация LAMP-приложения на примере OpenX}} | | {{include-review|ADD 2011: Отчет Василия Маслова/Оптимизация LAMP-приложения на примере OpenX}} |
Строка 57: |
Строка 60: |
| | | |
| <references/> | | <references/> |
− |
| |
− | {{feedback-appeal|ADD-2011}}
| |
| | | |
| {{replicate-from-custiswiki-to-lib}} | | {{replicate-from-custiswiki-to-lib}} |
| [[Категория:ADD-2011 (наша запись)]] | | [[Категория:ADD-2011 (наша запись)]] |
| + | [[Категория: Программирование (доклады)]] |
Текущая версия на 21:55, 9 июня 2012
Аннотация
- Докладчик
- Александр Чистяков
Типичная ситуация: имеется существующий веб-проект, написанный с применением Linux, Apache, MySQL и PHP, и заказчик хочет сделать проект быстрее с наиболее полным сохранением функциональности.
В данном случае в качестве существующего проекта выступает open source баннерная платформа OpenX, и существенное требование заказчика — разогнать OpenX до пиковой нагрузки в 1000 запросов в секунду и долговременной нагрузки в 600 запросов в секунду.
Постановка задачи: отдача JavaScript-баннеров с заданными параметрами производительности при заданном числе объектов системы.
- Краткий обзор объектов предметной области OpenX: баннеры, кампании, зоны.
- Особенности OpenX: подходы к оптимизации, предлагаемые производителем, несколько раундов оптимизации уже было.
- Проблемы: алгоритм скрипта выбора баннеров плохо работает при требуемом количестве объектов, имеем CPU-bound систему (обычно IO-bound).
- Решение: кэширование предрассчитанных данных в БД.
- Новые вводные от заказчика, поиск компромисса.
- Сбор информации о системе: точки профилирования в коде скрипта, мониторинг с помощью Cacti и Zabbix.
- Архитектура системы: типы узлов и связи между узлами. Балансирование нагрузки: nginx vs. HAProxy.
- Действия после перенесения нагрузки на уровень БД: кэширование в памяти, проблема: много записи на диск.
- MySQL vs MySQL (выбор движка хранилища), MySQL vs MySQL (выбор сборки: stock, Percona Server, MariaDB), MySQL vs PostgreSQL, MySQL vs in-memory RDBMS, MySQL vs NoSQL.
- Тюнинг MySQL: параметры конфигурации, параметры платформы (файловая система).
- Нагрузочное тестирование: как получить 1000 rps от клиента? siege vs JMeter vs Tsung.
- Эволюция архитектуры. Поиск возможностей шардирования данных.
- Отказоустойчивость: memcached, moxi, Membase.
- Управление конфигурацией: проблема развертывания нод и управления нодами.
- Использование Puppet для управления конфигурацией.
Видео
- Скачать
http://ftp.linux.kiev.ua/pub/conference/peers/addconf/2011/2b7-lamp-optimization-openx-chistyakov.avs.avi
Для этого доклада нужен подкаст (аудиозапись)?
Примечания и отзывы
Александр Чистяков рассказал об опыте оптимизации производительности в условиях политического давления :). ©
Александр Чистяков полгода оптимизировал php-приложение, не меняя его код. Очень сжатый и по существу доклад, построенный по принципу серии доктора Хауса. ©
Выступление Александра Чистякова с разгоном LAMP до второй космической скорости вообще целиком состояло из трюков и ощущалось как детективный сериал «Спрут». То мы их, то они нас, и таких двести итераций. Интересно, но несколько однообразно. ©
Сразу возник вопрос: кем докладчик — Александр Чистяков приходится Владиславу Чистякову (контрибутору Nemerle)? Насколько известно, они просто однофамильцы.
Очень бодро рассказывал про оптимизацию платформы OpenX. Доклад проходил в стиле «Такая-то проблема. OK. Пробуем то-то». Больше всего цепляет то, с какой легкостью в проекте опробуются и внедряются различные инструменты/технологии, без постоянного опасения рисков от «нового». В нашей жизни такой динамики, конечно, не хватает.