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

6,277 views

Published on

Почта@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
6,277
On SlideShare
0
From Embeds
0
Number of Embeds
4,999
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×