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

ThinkPHP #3: Highload не кусается

ThinkPHP #3: Highload не кусается

История одного проекта, над которым пришлось работать. Сейчас пузомерка проекта доросла до 20 млн визитов в месяц :)

thinkphp_com_ua

August 18, 2012
Tweet

More Decks by thinkphp_com_ua

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 авторизации ◦ проверяем попадание

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

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

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