Типичная схема проекта на одном сервере
Разносим базу на master-slave
Схема разноса базы данных по функционалу
Шардинг

1) По диапазонам
     (#1: 1 – 99999, #2: 100000 – 199999, #3: 200000 – 299999, etc )
2) По остатку от деления на кол-во шардов
     (n = ID % 9, для 10 шардов от 0 до 9)
3) С диспетчеризацией
     (n = getPath(Dispatcher))
4) С маршрутизацией
     (query -> Proxy -> N shard)
5) Сумбур
Точки отказа
Решардниг
Балансировка нагрузки
Время поиска пути/Время обхода
Пример обхода
Инвалидация/актуализация кеша

- кешировать на N минут
- каждые N минут удалять произвольные куски
- binlog player
Если что-то пошло не так…




                   read(6, …
Pinger
Балансировка
1)   DNS Round Robin
2)   L2 балансировка
3)   L3 балансировка (DNAT)
4)   Проксирование
5)   HTTP Редирект
6)   IPVS
Нагрузка
Держите ваши подсистемы загруженными не более, чем на
                        80%
 1)   Разнос данных
 2)   Всплески нагрузки
 3)   Dos
 4)   Падение производительности
CPU usage
С е р ге й К у ба с о в
З аместител ь техническ ого д ирек тора
       s.kubasov@corp.mail.ru

Kubasov