Your SlideShare is downloading. ×
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузки
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Как мы в Почте@Mail.Ru выдерживаем высокие нагрузки

5,668
views

Published on

Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как …

Почта@Mail.Ru и главная страница Mail.Ru — очень высоконагруженные сервисы. Суточная аудитория — 20 млн человек, количество хитов в день на динамику — более 500 млн. Я хочу рассказать вам о том, как мы выдерживаем такие нагрузки, посредством каких технологий, как мы к ним пришли и что получили в результате.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,668
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Как мы выдерживаем высокую нагрузку
  • 2. Аудитория Почты и Главной страницы Mail.Ru• 20 млн человек в день• Более 500 млн хитов в день на динамические страницы
  • 3. Аспекты проблемы нагрузкиИнфраструктура ОрганизацияСервера Технологии
  • 4. Традиционные решения не работают WEB = 50000 LAMP человек в день MySQL
  • 5. Примеры проблем нагрузки• Хранение быстроменяющихся данных• Хранение и отдача счетчиков (чиселок)• Уведомление о новых письмах в почте• Проверка спама, доставленного в ящики; хранение спама, не доставленного в ящики• Хранение больших файлов (files.mail.ru)• Установление большого количества сессий к MySQL
  • 6. Хранение быстроменяющихся данныхData WEB 10-100 KRPS
  • 7. Хранение и отдача счетчиков (чиселок) WEB Data
  • 8. Уведомление о новых письмах в почте WEB Data
  • 9. Проверка спама, доставленного в ящики ХранилищАнтиспам е
  • 10. Хранение больших файлов (files.mail.ru) Хранилище Больших файлов
  • 11. Установление большого количества сессий к MySQL WEB WEB WEB MySQL WEB WEB WEB
  • 12. Хранение сессий, статистики антиспама, базы антирбутфорса Сессии ? Стат антиспама База Антибруфорса
  • 13. Хранение сессий, статистики антиспама, базы антирбутфорса 1KRPS MySQL 3KRPS MySQL MySQL MySQL100KRPS MySQL MySQL
  • 14. Дороговизна администрированияMySQL MySQL MySQL MySQL MySQL MySQL
  • 15. Неравномерность загрузки MySQL MySQL MySQL MySQLMySQL
  • 16. Сложность добавления новых шардовMySQL MySQL MySQL MySQL MySQL MySQL
  • 17. Общая дороговизна решения RAM RAM RAM RAM RAMMySQL MySQL MySQL MySQL MySQL HDD HDD HDD HDD HDD
  • 18. Высокий хитрейт – не повод для шардинга! 100Gb 20Gb 20Gb 20Gb 20Gb 20Gb
  • 19. Зачем нам оверхеды СУБД? Disk +SQL Locks Threads DB-engine cache CPU
  • 20. Хранение сессий, статистики антиспама, базы антирбутфорса Key-100KRPS Value storage No SQL No Locks No Threads No dbengine No random disk access
  • 21. Key-Value storage. Схема электрическая, принципиальная.CLIENT RAM LOG SNAPSHOT
  • 22. Хранение и отдача счетчиков на главной странице и в шапке
  • 23. Хранение и отдача счетчиков на главной странице и в шапке Сервер счетчиков Хранилище Веб сервер
  • 24. Уведомление о новых письмах в почте
  • 25. Уведомление о новых письмах в почте Веб Веб сервер сервер Сервер изменений ХранилищеХранилище
  • 26. Проверка и удаление спама, уже доставленного в ящикиАнтиспам Хранилище Антиспам
  • 27. Хранение спама, не доставленного в ящики Хранилище спама Антиспам Хранилище писем
  • 28. Хранение спамаПисьмо 1 Письмо 4 Письмо 7Письмо 2 Письмо 5 Письмо 8 CronПисьмо 3 Письмо 6 Письмо 9
  • 29. Хранение больших файлов (files.mail.ru)User 1 File 1User 2 File 2User 3 File 3 ИндексUser 4 File 4User 5 File 5User 6 File 6
  • 30. Соединения с MySQLWEB WEBWEB MySQL WEBWEB WEB
  • 31. Соединения с MySQL В Р Е CP М Я UMySQL RAM
  • 32. Соединения с MySQL LOCAL WEB MySQL(PERL/PYTHON) MySQL Proxy CONN CONN CONN
  • 33. Соединения с MySQLWEB WEB MySQL ProxyWEB WEB
  • 34. Как создавать высоконагруженные сервисы? Perl nginx PHP Apache nginx HTML/CSS/JS Python Dynamic nginx In memory or database Tarantool Critical similar Redis dynamic Counters Critical data (чиселки) MySQL Big SpreadTemporaryfiles Proxy User files Non critical data data
  • 35. СПАСИБО! Денис АникинТехнический руководитель Почты@Mail.Ru anikin@corp.mail.ru