SlideShare a Scribd company logo
1 of 34
Архитектура Фотостраны




Интересно? Заходи на http://job.fotostrana.ru
Фотоcтрана? Не, не слышал.




Интересно? Заходи на http://job.fotostrana.ru
— 31 500 000 зарегистрированных пользователей
  — 1 400 000 уникальных посетителей в день.
  — Больше 100 человек в команде
  — Входим в ТОП-20 сайтов рунета




Интересно? Заходи на http://job.fotostrana.ru
О чем расскажу?
  • Обработка запроса и генерация HTML

  • Как мы отдаем статику

  • Хранение данных




Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Питомцы, профили, поиск…

                  Нет разбиения на группы

Интересно? Заходи на http://job.fotostrana.ru
Питомцы             Профили               Поиск


                  Есть разбиение на группы

Интересно? Заходи на http://job.fotostrana.ru
• 80 PHP серверов
                                                • 2.500 req/s
                                                • Среднее время
                                                  ответа 0.1 сек




Интересно? Заходи на http://job.fotostrana.ru
Отдача статики
  • Наша статика (css, js, swf, jpg…)

  • Фотосхема (пользовательские фотки,
    аватарки, превьюшки)




Интересно? Заходи на http://job.fotostrana.ru
Содержимое статики:




                                           }
  • 800 css
  • 750 js
                                                3 Гигабайта
  • 3200 swf
  • 48000 image

  • 5000 req/s
  • >1 Гбит/сек трафика в пике



Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Фотосхема
  • 11 Тб - объем пользовательских фотографий
  • 250.000 - новых фоток в сутки
  • 4000 req/s




Интересно? Заходи на http://job.fotostrana.ru
Фотосхема
                                           • Кэшв RAM
                                           + Кэш на SSD (для маленьких
                                           файлов)



                                           • Кэш в RAM
                                           • Кэш на HDD



                                         • Большие SATA диски
                                         • Полное дублирование
                                           файлов между серверами

Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Хранение данных
  •   MySQL
  •   Memcached
  •   Lemon – самописная NoSQL
  •   Демоны на C++




Интересно? Заходи на http://job.fotostrana.ru
• 14 серверов
                                       • 110.000 / мин SELECT
                                       • 25.000 / мин UPDATE




  картинка про alter таблички на 30кк записей (15Гбайт)


Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
• 5 серверов
                                                • 200 Гбайт RAM
                                                • 30.000 req/s




Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
MySQL плохо делает 3 вещи:

  • Удаление большого количества данных

  • Очень частые изменения данных

  • Частые выборки




Интересно? Заходи на http://job.fotostrana.ru
Решение – NoSQL.



                                               Lemon


  Lemon:
  • Простое key-value хранилище
  • Все данные в памяти
  • Периодический сброс данных на диск



Интересно? Заходи на http://job.fotostrana.ru
Интересно? Заходи на http://job.fotostrana.ru
Демоны
  Что сделали:
  • Модуль для PHP
  • Разработали протокол взаимодействия



  Всего больше 30:
  • Гости, контакты, мессенджер, питомцы, поиск,
    встречи, голосвание…


Интересно? Заходи на http://job.fotostrana.ru
Пример: демон гостей
  <?
  $guests->call(‘add_guest’, array(
      $toUserId,
      $guestId,
      $source,
  ));
  $list = $guests->call(‘get_guest_list’, array(
      $forUserId,
      $limit,
      $offset,
  )); // $list = array(array(guestId, time, source), …)
Интересно? Заходи на http://job.fotostrana.ru
HTTP демоны




                     /user/123                  /chat/?userId=123




Интересно? Заходи на http://job.fotostrana.ru
HTTP демоны
  • Быстрее PHP, в 10 раз!
  • > 50% запросов на балансер попадают к
    демонам
  • Всего 7 серверов




Интересно? Заходи на http://job.fotostrana.ru
Подводя итоги
  •   Нет преждевременной оптимизации
  •   Нет трендам, да цифрам
  •   Не бойтесь экспериментировать
  •   Проверяйте все сами




Интересно? Заходи на http://job.fotostrana.ru
Спасибо за внимание!




                             Вопросы


Интересно? Заходи на http://job.fotostrana.ru

More Related Content

What's hot

Top-10 популярных вопросов администраторам баз данных или почему я против св...
Top-10  популярных вопросов администраторам баз данных или почему я против св...Top-10  популярных вопросов администраторам баз данных или почему я против св...
Top-10 популярных вопросов администраторам баз данных или почему я против св...Ilya Kosmodemiansky
 
Илья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comИлья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comOntico
 
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)10 наиболее важных инструментов seo-оптимизатора (вебинар #2)
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)Сергей Кокшаров
 
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли..."Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...Ontico
 
Презентация по RSS-наполнению сайтов
Презентация по RSS-наполнению сайтовПрезентация по RSS-наполнению сайтов
Презентация по RSS-наполнению сайтовneotext
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программистаSlach
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...GeeksLab Odessa
 
A polyglot's view of Ruby on Rails – Leonid Shevtsov
A polyglot's view of Ruby on Rails –  Leonid ShevtsovA polyglot's view of Ruby on Rails –  Leonid Shevtsov
A polyglot's view of Ruby on Rails – Leonid ShevtsovRuby Meditation
 
Как оптимизировать текст для поисковых систем
Как оптимизировать текст для поисковых системКак оптимизировать текст для поисковых систем
Как оптимизировать текст для поисковых системСергей Кокшаров
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsDaniel Podolsky
 
Илья Исерсон - семантика для контекста
Илья Исерсон - семантика для контекстаИлья Исерсон - семантика для контекста
Илья Исерсон - семантика для контекстаSEO-Интеллект
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBStepan Stolyarov
 
Автоматизация внутренней перелинковки - Антон Иванов
Автоматизация внутренней перелинковки - Антон ИвановАвтоматизация внутренней перелинковки - Антон Иванов
Автоматизация внутренней перелинковки - Антон ИвановЛеонид Гроховский
 

What's hot (16)

RIW 2017 | Все плохо
RIW 2017 | Все плохоRIW 2017 | Все плохо
RIW 2017 | Все плохо
 
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Top-10  популярных вопросов администраторам баз данных или почему я против св...Top-10  популярных вопросов администраторам баз данных или почему я против св...
Top-10 популярных вопросов администраторам баз данных или почему я против св...
 
Илья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.comИлья Космодемьянский, PostgreSQL-Consulting.com
Илья Космодемьянский, PostgreSQL-Consulting.com
 
Кеширование данных в БД
Кеширование данных в БДКеширование данных в БД
Кеширование данных в БД
 
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)10 наиболее важных инструментов seo-оптимизатора (вебинар #2)
10 наиболее важных инструментов seo-оптимизатора (вебинар #2)
 
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли..."Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
 
Презентация по RSS-наполнению сайтов
Презентация по RSS-наполнению сайтовПрезентация по RSS-наполнению сайтов
Презентация по RSS-наполнению сайтов
 
Скорость работы интернет магазина
Скорость работы интернет магазинаСкорость работы интернет магазина
Скорость работы интернет магазина
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
 
A polyglot's view of Ruby on Rails – Leonid Shevtsov
A polyglot's view of Ruby on Rails –  Leonid ShevtsovA polyglot's view of Ruby on Rails –  Leonid Shevtsov
A polyglot's view of Ruby on Rails – Leonid Shevtsov
 
Как оптимизировать текст для поисковых систем
Как оптимизировать текст для поисковых системКак оптимизировать текст для поисковых систем
Как оптимизировать текст для поисковых систем
 
RTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwordsRTB DSP на языке Go: укрощение buzzwords
RTB DSP на языке Go: укрощение buzzwords
 
Илья Исерсон - семантика для контекста
Илья Исерсон - семантика для контекстаИлья Исерсон - семантика для контекста
Илья Исерсон - семантика для контекста
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDB
 
Автоматизация внутренней перелинковки - Антон Иванов
Автоматизация внутренней перелинковки - Антон ИвановАвтоматизация внутренней перелинковки - Антон Иванов
Автоматизация внутренней перелинковки - Антон Иванов
 

Viewers also liked

Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиKirill Mokevnin
 
Filipe Portela - Incubadoras e Aceleradoras em Portugal
Filipe Portela - Incubadoras e Aceleradoras em PortugalFilipe Portela - Incubadoras e Aceleradoras em Portugal
Filipe Portela - Incubadoras e Aceleradoras em PortugalJoão Tàtá dos Anjos
 
Dlaczego musisz uwierzyć w swój sukces
Dlaczego musisz uwierzyć w swój sukcesDlaczego musisz uwierzyć w swój sukces
Dlaczego musisz uwierzyć w swój sukcesMS Marketing Group
 
Miller - Aligning information literacy with curricular requirements and engag...
Miller - Aligning information literacy with curricular requirements and engag...Miller - Aligning information literacy with curricular requirements and engag...
Miller - Aligning information literacy with curricular requirements and engag...IL Group (CILIP Information Literacy Group)
 
El Matrimonio, Civil Familia
El Matrimonio, Civil Familia El Matrimonio, Civil Familia
El Matrimonio, Civil Familia Ruberlys Ortiz
 
NorlandAnnualReview2013
NorlandAnnualReview2013NorlandAnnualReview2013
NorlandAnnualReview2013Helen Simpson
 
Daniele Gambetta Alimentazione del Ciclista
Daniele Gambetta Alimentazione del CiclistaDaniele Gambetta Alimentazione del Ciclista
Daniele Gambetta Alimentazione del CiclistaDaniele Gambetta
 
Neuroanatomia y neurofisiologia (1) (5) (1) (1)
Neuroanatomia y neurofisiologia (1) (5) (1) (1)Neuroanatomia y neurofisiologia (1) (5) (1) (1)
Neuroanatomia y neurofisiologia (1) (5) (1) (1)jaclynsidransitapernia
 
World war II in photographs
World war II in photographsWorld war II in photographs
World war II in photographsJNR
 
Implement Marketing: social media activity for Crawley Live event
Implement Marketing: social media activity for Crawley Live event Implement Marketing: social media activity for Crawley Live event
Implement Marketing: social media activity for Crawley Live event Implement Marketing
 
Apa yang terjadi ketika saudara memberkati orang lain
Apa yang terjadi ketika saudara memberkati orang lainApa yang terjadi ketika saudara memberkati orang lain
Apa yang terjadi ketika saudara memberkati orang lainironpasaribu
 

Viewers also liked (19)

Загрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статикиЗагрузка, обработка, хранение и отдача статики
Загрузка, обработка, хранение и отдача статики
 
Filipe Portela - Incubadoras e Aceleradoras em Portugal
Filipe Portela - Incubadoras e Aceleradoras em PortugalFilipe Portela - Incubadoras e Aceleradoras em Portugal
Filipe Portela - Incubadoras e Aceleradoras em Portugal
 
Dlaczego musisz uwierzyć w swój sukces
Dlaczego musisz uwierzyć w swój sukcesDlaczego musisz uwierzyć w swój sukces
Dlaczego musisz uwierzyć w swój sukces
 
Evolution of AWM in rainfed crop‐livestock systems of the Volta Basin
Evolution of AWM in rainfed crop‐livestock systems of the Volta BasinEvolution of AWM in rainfed crop‐livestock systems of the Volta Basin
Evolution of AWM in rainfed crop‐livestock systems of the Volta Basin
 
6 урок "Основы ТРИЗ"
6 урок "Основы ТРИЗ" 6 урок "Основы ТРИЗ"
6 урок "Основы ТРИЗ"
 
Miller - Aligning information literacy with curricular requirements and engag...
Miller - Aligning information literacy with curricular requirements and engag...Miller - Aligning information literacy with curricular requirements and engag...
Miller - Aligning information literacy with curricular requirements and engag...
 
El Matrimonio, Civil Familia
El Matrimonio, Civil Familia El Matrimonio, Civil Familia
El Matrimonio, Civil Familia
 
NorlandAnnualReview2013
NorlandAnnualReview2013NorlandAnnualReview2013
NorlandAnnualReview2013
 
Daniele Gambetta Alimentazione del Ciclista
Daniele Gambetta Alimentazione del CiclistaDaniele Gambetta Alimentazione del Ciclista
Daniele Gambetta Alimentazione del Ciclista
 
Neuroanatomia y neurofisiologia (1) (5) (1) (1)
Neuroanatomia y neurofisiologia (1) (5) (1) (1)Neuroanatomia y neurofisiologia (1) (5) (1) (1)
Neuroanatomia y neurofisiologia (1) (5) (1) (1)
 
Kue kering
Kue keringKue kering
Kue kering
 
World war II in photographs
World war II in photographsWorld war II in photographs
World war II in photographs
 
Implement Marketing: social media activity for Crawley Live event
Implement Marketing: social media activity for Crawley Live event Implement Marketing: social media activity for Crawley Live event
Implement Marketing: social media activity for Crawley Live event
 
Cf(tnhh tien thanh)
Cf(tnhh tien thanh)Cf(tnhh tien thanh)
Cf(tnhh tien thanh)
 
Catalogo hygiene partner thomas
Catalogo hygiene partner thomasCatalogo hygiene partner thomas
Catalogo hygiene partner thomas
 
Ajnara The belevedre
Ajnara The belevedreAjnara The belevedre
Ajnara The belevedre
 
M.AdelCV.doc
M.AdelCV.docM.AdelCV.doc
M.AdelCV.doc
 
Apa yang terjadi ketika saudara memberkati orang lain
Apa yang terjadi ketika saudara memberkati orang lainApa yang terjadi ketika saudara memberkati orang lain
Apa yang terjadi ketika saudara memberkati orang lain
 
Shot list
Shot listShot list
Shot list
 

Similar to Фотострана, Дмитрий Смирнов

Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...Exiterra Digital Agency 360º
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секундoelifantiev
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruodnoklassniki.ru
 
Презентация Александра Садовского, 2009
Презентация Александра Садовского, 2009Презентация Александра Садовского, 2009
Презентация Александра Садовского, 2009drivecity
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Andrew Mayorov
 
Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Ontico
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данныхSiel01
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...Ontico
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Ontico
 
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...ЮниВеб
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...it-people
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернетаAlexander Sibiryakov
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetOleg Tsarev
 
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...it-people
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuCodeFest
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly WebsitesElkaakle
 

Similar to Фотострана, Дмитрий Смирнов (20)

Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секунд
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
 
Презентация Александра Садовского, 2009
Презентация Александра Садовского, 2009Презентация Александра Садовского, 2009
Презентация Александра Садовского, 2009
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.
 
Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...Применение статистических методов и инструментов для анализа производительнос...
Применение статистических методов и инструментов для анализа производительнос...
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
Как устроены поисковые системы
Как устроены поисковые системыКак устроены поисковые системы
Как устроены поисковые системы
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"
 
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
Александр Садовский "Хороший веб-поиск для веб-мастеров" на конференции Optim...
 
Leonovich
LeonovichLeonovich
Leonovich
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
Frontera: распределенный робот для обхода интернета в больших объемах - Алекс...
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернета
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
 
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.Ru
 
SEO-Friendly Websites
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly Websites
 

More from EYevseyeva

Программа развития менеджерских компетенций IT-руководителей QIWI
Программа развития менеджерских компетенций IT-руководителей QIWIПрограмма развития менеджерских компетенций IT-руководителей QIWI
Программа развития менеджерских компетенций IT-руководителей QIWIEYevseyeva
 
Образовательный проект как способ подготовки молодых специалистов
Образовательный проект как способ подготовки молодых специалистовОбразовательный проект как способ подготовки молодых специалистов
Образовательный проект как способ подготовки молодых специалистовEYevseyeva
 
Чему и как учить IT специалистов?
Чему и как учить IT специалистов?Чему и как учить IT специалистов?
Чему и как учить IT специалистов?EYevseyeva
 
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceВыступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceEYevseyeva
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceEYevseyeva
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceEYevseyeva
 
Артем Кумпель, Кому лучше работается?
Артем Кумпель, Кому лучше работается?Артем Кумпель, Кому лучше работается?
Артем Кумпель, Кому лучше работается?EYevseyeva
 
EMC2, Владимир Суворов
EMC2, Владимир СуворовEMC2, Владимир Суворов
EMC2, Владимир СуворовEYevseyeva
 
LiveLournal, Михаил Вавилов
LiveLournal, Михаил ВавиловLiveLournal, Михаил Вавилов
LiveLournal, Михаил ВавиловEYevseyeva
 
Проект «Одноклассники» Mail.Ru Group, Андрей Паньгин
Проект «Одноклассники» Mail.Ru Group, Андрей ПаньгинПроект «Одноклассники» Mail.Ru Group, Андрей Паньгин
Проект «Одноклассники» Mail.Ru Group, Андрей ПаньгинEYevseyeva
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковEYevseyeva
 

More from EYevseyeva (11)

Программа развития менеджерских компетенций IT-руководителей QIWI
Программа развития менеджерских компетенций IT-руководителей QIWIПрограмма развития менеджерских компетенций IT-руководителей QIWI
Программа развития менеджерских компетенций IT-руководителей QIWI
 
Образовательный проект как способ подготовки молодых специалистов
Образовательный проект как способ подготовки молодых специалистовОбразовательный проект как способ подготовки молодых специалистов
Образовательный проект как способ подготовки молодых специалистов
 
Чему и как учить IT специалистов?
Чему и как учить IT специалистов?Чему и как учить IT специалистов?
Чему и как учить IT специалистов?
 
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceВыступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Артем Кумпель, Кому лучше работается?
Артем Кумпель, Кому лучше работается?Артем Кумпель, Кому лучше работается?
Артем Кумпель, Кому лучше работается?
 
EMC2, Владимир Суворов
EMC2, Владимир СуворовEMC2, Владимир Суворов
EMC2, Владимир Суворов
 
LiveLournal, Михаил Вавилов
LiveLournal, Михаил ВавиловLiveLournal, Михаил Вавилов
LiveLournal, Михаил Вавилов
 
Проект «Одноклассники» Mail.Ru Group, Андрей Паньгин
Проект «Одноклассники» Mail.Ru Group, Андрей ПаньгинПроект «Одноклассники» Mail.Ru Group, Андрей Паньгин
Проект «Одноклассники» Mail.Ru Group, Андрей Паньгин
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 

Фотострана, Дмитрий Смирнов

  • 2. Фотоcтрана? Не, не слышал. Интересно? Заходи на http://job.fotostrana.ru
  • 3. — 31 500 000 зарегистрированных пользователей — 1 400 000 уникальных посетителей в день. — Больше 100 человек в команде — Входим в ТОП-20 сайтов рунета Интересно? Заходи на http://job.fotostrana.ru
  • 4. О чем расскажу? • Обработка запроса и генерация HTML • Как мы отдаем статику • Хранение данных Интересно? Заходи на http://job.fotostrana.ru
  • 5. Интересно? Заходи на http://job.fotostrana.ru
  • 6. Интересно? Заходи на http://job.fotostrana.ru
  • 7. Питомцы, профили, поиск… Нет разбиения на группы Интересно? Заходи на http://job.fotostrana.ru
  • 8. Питомцы Профили Поиск Есть разбиение на группы Интересно? Заходи на http://job.fotostrana.ru
  • 9. • 80 PHP серверов • 2.500 req/s • Среднее время ответа 0.1 сек Интересно? Заходи на http://job.fotostrana.ru
  • 10. Отдача статики • Наша статика (css, js, swf, jpg…) • Фотосхема (пользовательские фотки, аватарки, превьюшки) Интересно? Заходи на http://job.fotostrana.ru
  • 11. Содержимое статики: } • 800 css • 750 js 3 Гигабайта • 3200 swf • 48000 image • 5000 req/s • >1 Гбит/сек трафика в пике Интересно? Заходи на http://job.fotostrana.ru
  • 12. Интересно? Заходи на http://job.fotostrana.ru
  • 13. Интересно? Заходи на http://job.fotostrana.ru
  • 14. Интересно? Заходи на http://job.fotostrana.ru
  • 15. Фотосхема • 11 Тб - объем пользовательских фотографий • 250.000 - новых фоток в сутки • 4000 req/s Интересно? Заходи на http://job.fotostrana.ru
  • 16. Фотосхема • Кэшв RAM + Кэш на SSD (для маленьких файлов) • Кэш в RAM • Кэш на HDD • Большие SATA диски • Полное дублирование файлов между серверами Интересно? Заходи на http://job.fotostrana.ru
  • 17. Интересно? Заходи на http://job.fotostrana.ru
  • 18. Интересно? Заходи на http://job.fotostrana.ru
  • 19. Интересно? Заходи на http://job.fotostrana.ru
  • 20. Интересно? Заходи на http://job.fotostrana.ru
  • 21. Хранение данных • MySQL • Memcached • Lemon – самописная NoSQL • Демоны на C++ Интересно? Заходи на http://job.fotostrana.ru
  • 22. • 14 серверов • 110.000 / мин SELECT • 25.000 / мин UPDATE картинка про alter таблички на 30кк записей (15Гбайт) Интересно? Заходи на http://job.fotostrana.ru
  • 23. Интересно? Заходи на http://job.fotostrana.ru
  • 24. • 5 серверов • 200 Гбайт RAM • 30.000 req/s Интересно? Заходи на http://job.fotostrana.ru
  • 25. Интересно? Заходи на http://job.fotostrana.ru
  • 26. MySQL плохо делает 3 вещи: • Удаление большого количества данных • Очень частые изменения данных • Частые выборки Интересно? Заходи на http://job.fotostrana.ru
  • 27. Решение – NoSQL.  Lemon Lemon: • Простое key-value хранилище • Все данные в памяти • Периодический сброс данных на диск Интересно? Заходи на http://job.fotostrana.ru
  • 28. Интересно? Заходи на http://job.fotostrana.ru
  • 29. Демоны Что сделали: • Модуль для PHP • Разработали протокол взаимодействия Всего больше 30: • Гости, контакты, мессенджер, питомцы, поиск, встречи, голосвание… Интересно? Заходи на http://job.fotostrana.ru
  • 30. Пример: демон гостей <? $guests->call(‘add_guest’, array( $toUserId, $guestId, $source, )); $list = $guests->call(‘get_guest_list’, array( $forUserId, $limit, $offset, )); // $list = array(array(guestId, time, source), …) Интересно? Заходи на http://job.fotostrana.ru
  • 31. HTTP демоны /user/123 /chat/?userId=123 Интересно? Заходи на http://job.fotostrana.ru
  • 32. HTTP демоны • Быстрее PHP, в 10 раз! • > 50% запросов на балансер попадают к демонам • Всего 7 серверов Интересно? Заходи на http://job.fotostrana.ru
  • 33. Подводя итоги • Нет преждевременной оптимизации • Нет трендам, да цифрам • Не бойтесь экспериментировать • Проверяйте все сами Интересно? Заходи на http://job.fotostrana.ru
  • 34. Спасибо за внимание! Вопросы Интересно? Заходи на http://job.fotostrana.ru