Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HighLoad не кусается

fwdays
November 24, 2012

HighLoad не кусается

История одного проекта, над которым пришлось работать. Сейчас пузомерка проекта доросла до 20 млн визитов в месяц, а Alexa rank медленно подбирается к 1 500
— Анализ legacy кода
— Рефакторинг проекта
— Оптимизация и профилирование
— Оптимизация
— Оптимизация

fwdays

November 24, 2012
Tweet

More Decks by fwdays

Other Decks in Programming

Transcript

  1. С чего всё начиналось • •устаревшая структура БД • хлипкие

    сервера • дырявый код ... и другие болячки legacy code
  2. Спортзал • Core i7-975 • 12GB RAM • 80GB SSD

    • Core i7-975 • 24GB RAM • 2x120GB SSD(RAID0) • Percona-Mysql-5.5
  3. Работа • • ~1000 m/h • ~1000 issues • ~

    500 bugs • ~ 150 bugs > normal priority • ~ 10% bugfix ошибкам перевода устанавливался приоритет normal
  4. Кеширование "для гостей" • • проверяем cookie авторизации o проверяем

    попадание в кеш  загружаем html файл o гененрируем html файл  register_shutdown_function()
  5. Для базы данных 1. 1. PDO wrapper 2. INSERT/UPDATE/DELETE идут

    на master 3. SELECT запросы идут на slave a. кешировались изначально на 5 минут b. в течении двух-недель это тюнилось 1. Тяжёлые SELECT делятся между master и slave (таких лишь два на всю систему)
  6. PHP framework • Memcached wrapper • PDO wrapper • Simple

    Active Record • Simple Template Engine • MVC в одном index.php Часть кода мигрировала в Bluz Framework