21

Kubasov

Embed Size (px)

Citation preview

Page 1: Kubasov
Page 2: Kubasov

Типичная схема проекта на одном сервере

Page 3: Kubasov

Разносим базу на master-slave

Page 4: Kubasov

Схема разноса базы данных по функционалу

Page 5: Kubasov

Шардинг

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) Сумбур

Page 6: Kubasov

Точки отказа

Page 7: Kubasov

Решардниг

Page 8: Kubasov

Балансировка нагрузки

Page 9: Kubasov

Время поиска пути/Время обхода

Page 10: Kubasov

Пример обхода

Page 11: Kubasov
Page 12: Kubasov

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

Инвалидация/актуализация кеша

Page 13: Kubasov
Page 14: Kubasov

Если что-то пошло не так…

read(6, …

Page 15: Kubasov

Pinger

Page 16: Kubasov
Page 17: Kubasov

Балансировка

1) DNS Round Robin 2) L2 балансировка 3) L3 балансировка (DNAT) 4) Проксирование 5) HTTP Редирект 6) IPVS

Page 18: Kubasov

Нагрузка

Держите ваши подсистемы загруженными не более, чем на

80% 1) Разнос данных 2) Всплески нагрузки 3) Dos 4) Падение производительности

Page 19: Kubasov

CPU usage

Page 20: Kubasov
Page 21: Kubasov

Сергей Кубасов

З а м е с т и т ел ь т е х н и ч е с к о г о д и р е к т о р а

s . k u b a s o v @ c o r p . m a i l . r u