Реклама со скоростью света. Презентация Сергея...

32
Реклама со скоростью света Сергей Жемжицкий, CTO CleverDATA

Upload: cleverdata

Post on 14-Jun-2015

658 views

Category:

Technology


2 download

DESCRIPTION

1 ноября 2014 г. CTO CleverDATA Сергей Жемжицкий в рамках конференции High Load 2014 представил аудитории презентацию по построении DMP платформы с возможностью обработки 100% входящих запросов на базе продукта Aerospike

TRANSCRIPT

Page 1: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Реклама со скоростью света

Сергей Жемжицкий, CTO CleverDATA

Page 2: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Агенда

• Предыстория; • Муки выбора; • Цифры; • Результат; • Нюансы.

Page 3: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Требования RTB visitors publishers

advertisers

100 ms

30 ms

20 ms

10.000+ rps

Page 4: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Роль DMP в RTB-экосистеме

Data Data

Data

Bidder

Page 5: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Хочется как-то вот так…

Page 6: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Критерии выбора

• Линейная масштабируемость; • Шардинг “из коробки”; • Распределенность; • Репликация; • Низкое время отклика.

Page 7: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Снова этот NoSQL…

Page 8: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Функциональность Aerospike Cassandra CouchBase Mongo Redis

Масштабируемость

Шардинг

Репликация

Время отклика

Точка отказа

Требовательность

Мониторинг

Page 9: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Инструменты и материалы •  nginx 1.2.x

–  ngx-hEp-redis –  lua-nginx-module –  lua-resty-mongol –  ngx-aerospike

•  aerospike 2.x •  redis 2.6.x •  mongodb 2.4.x •  wrk •  iperf •  nmon

•  Intel® Core™ i7-920 Quad-Core •  48 GB RAM •  1 Gbit/s NICs (*) •  20 * 106 msgs •  512 bytes msg

* 200 Mbit/s guaranteed

Page 10: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Официальные данные

Page 11: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Become guru in 24 hours

Page 12: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Измеряем Nginx

NGINX

WRK

•  Без логирования; •  Без плагинов; •  С CPU Affinity.

Page 13: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Относительность измерений L., ms., 50% L., ms., 75% L., ms. 90% L., ms. 99% T., r/s

1.35 1.46 1.64 1.90 68851

Page 14: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Измеряем Redis

Node 1 Shard 1

Shard 2

Slave 3

Slave 4

Node 2 Shard  3  

Shard 4

Slave 5

Slave 6

Node 3 Shard 5

Shard 6

Slave 2

Slave 1

NGINX

WRK

Page 15: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Redis L., ms., 50% L., ms., 75% L., ms. 90% L., ms. 99% T., r/s

2.68 3.10 3.25 3.90 34769

Page 16: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Redis

Page 17: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Измеряем Mongo

NGINX :: MONGOS

WRK

Node 1 mongod :: cfg  

mongod :: repl

mongod :: repl

mongod :: repl

Node 2 mongod :: cfg  

mongod :: repl

mongod :: repl

mongod :: repl

Node 3 mongod :: cfg  

mongod :: repl

mongod :: repl

mongod :: repl

Shard 1 Replica Set 1

Shard 2 Replica Set 2

Shard 3 Replica Set 3

Page 18: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Mongo L., ms., 50% L., ms., 75% L., ms. 90% L., ms. 99% T., r/s

6.70 8.22 10.22 15.46 14220

Page 19: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Mongo

Page 20: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Меряем Aerospike

Node 1 Chunk 1

Replica 2

Node 2

Chunk 2  

Replica 3  

Node 3

Chunk 3  

Replica 1  

NGINX

WRK

Page 21: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Aerospike L., ms., 50% L., ms., 75% L., ms. 90% L., ms. 99% T., r/s

8.93 14.99 26.83 106.48 3402

Page 22: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Результаты Aerospike

Page 23: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

… еще результаты Aerospike Wks 50 75 90 99 R/s Ngx, CPU Ngx, p/s As, CPU As, p/s

4 8.22 10.22 15.46 97.3 3402 7 8 K 1 1 K

8 7.89 15.16 92.4 89.8 6028 10 13 K 1 2 K

12 4.76 8.74 103.1 121.6 10233 15 20 K 2 3 K

16 3.91 6.21 99.6 111.3 13178 22 26 K 3 6 K

24 2.13 2.87 4.68 76.81 25744 21 60 K 5 10 K

32 2.01 2.60 4.42 81.3 28925 25 70 K 6 11 K

64 2.54 3.66 112.4 118.1 26468 27 70 K 6 11 K

Page 24: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

…случайно выстрелили в ногу

nginx + blocking I/O

Page 25: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Строим  ракету  Libevent in action (попытка 2)

Node 1 Chunk 1

Replica 2

Node 2

Chunk 2  

Replica 3  

Node 3

Chunk 3  

Replica 1  

LIBEVENT :: LIBEVHTP

WRK

Page 26: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

… ну наконец-то … L., ms., 50% L., ms., 75% L., ms. 90% L., ms. 99% T., r/s

2.64 3.09 3.27 3.95 35746

Page 27: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

… ну наконец-то …

Page 28: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Неофициальные данные Nginx Redis Mongo Aerospike, b Aerospike, nb

Latency, 50% 1.35 2.68 6.70 8.93 2.64 Latency, 75% 1.46 3.10 8.22 14.99 3.09 Latency, 90% 1.64 3.25 10.22 26.83 3.27 Latency, 99% 1.90 3.90 15.46 106.48 3.95 Throughput, rps 68851 34769 14220 3402 35746 CPU, Web, % 29 20 70 7 33 Network, Web, kp/s 71 71 37 8 71 CPU, Db, % - 6 25 1 6 Network, Db, kp/s - 12 21 1 12

Page 29: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Aerospike

Page 30: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Строим  ракету  Можно строить

Page 31: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Что иметь ввиду? •  Неблокирующий I/O; •  Все, что можно сделать локально – делать локально;

•  Быть ленивым (уметь пользоваться чужими результатами);

•  Никому нельзя верить.

Page 32: Реклама со скоростью света. Презентация Сергея Жемжицкого на High Load++ 2014

Спасибо за вопросы!

[email protected]