18
SkyTools: помощь в вопросах масштабирования Артём Носов

SkyTools помощь в вопросах масштабирования (Артем Носов)

  • Upload
    ontico

  • View
    1.119

  • Download
    6

Embed Size (px)

Citation preview

Page 1: SkyTools помощь в вопросах масштабирования (Артем Носов)

SkyTools: помощь в вопросах масштабирования

Артём Носов

Page 2: SkyTools помощь в вопросах масштабирования (Артем Носов)

План доклада● Skytools: готовые решения от Skype

● Основы PgQ: очередь, поставщик и потребитель;

● Londiste — как средство репликации;

● Проблемы масштабирования skytools 2.x

● Светлое будущее

Page 3: SkyTools помощь в вопросах масштабирования (Артем Носов)

Компоненты SkyTools● PgQ● londiste● walmgr

Page 4: SkyTools помощь в вопросах масштабирования (Артем Носов)

Применение PgQ● Асинхронная обработка событий● Обработка группы событий (batch)● Репликация

Page 5: SkyTools помощь в вопросах масштабирования (Артем Носов)

Под капотом

Page 6: SkyTools помощь в вопросах масштабирования (Артем Носов)

Пример

activity queue

Rating Consumer(Realtime)

Activity consumer

user stat table

Comet

Memcached

Page 7: SkyTools помощь в вопросах масштабирования (Артем Носов)

Сильные стороны● Поддержка транзакций

● Эффективная обработка событий

● Нет ограничений на количество поставщиков и потребителей

● Надежность

● Простота использования

● Open Source

Page 8: SkyTools помощь в вопросах масштабирования (Артем Носов)

PgQ: ticker● Без ticker(a) нет batch(ей)● Без batch(ей) события не обрабатываются● Держите ticker всегда запущенным!

Page 9: SkyTools помощь в вопросах масштабирования (Артем Носов)

Параметры очереди ● ticker_max_lag● ticker_idle_period● ticker_max_count● rotation_period

Page 10: SkyTools помощь в вопросах масштабирования (Артем Носов)

Londiste — master/slave replay

Page 11: SkyTools помощь в вопросах масштабирования (Артем Носов)

В чем подвох

Page 12: SkyTools помощь в вопросах масштабирования (Артем Носов)

request queue

notification fake table

1 событие

1 событие

10000событий

request consumer

Page 13: SkyTools помощь в вопросах масштабирования (Артем Носов)

notification queue_1

notification queue_..

notification fake table

notification queue_100

email notification consumer_1

email notification consumer_..

email notification consumer_100

Page 14: SkyTools помощь в вопросах масштабирования (Артем Носов)

Мониторинг ● pgq.get_consumer_info● pgqadm.py status● cacti и nagios

Page 15: SkyTools помощь в вопросах масштабирования (Артем Носов)

pgq.get_consumer_info() queue_name | consumer_name | lag | last_seen

-----------------+-----------------------+-----------------+-----------------

load_avatars_1 | load_avatars_consumer | 00:00:42.083408 | 00:00:37.561954

load_avatars_2 | load_avatars_consumer | 00:00:42.081061 | 00:00:37.653641

load_avatars_3 | load_avatars_consumer | 00:00:42.082729 | 00:00:37.906649

load_avatars_4 | load_avatars_consumer | 00:00:42.081907 | 00:00:37.574957

load_avatars_5 | load_avatars_consumer | 00:00:42.08163 | 00:00:37.840843

Page 16: SkyTools помощь в вопросах масштабирования (Артем Носов)

08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:000

100

200

300

400

500

600

700

800

900

1000

Время

Ко

ли

чест

во с

об

ыти

й

Page 17: SkyTools помощь в вопросах масштабирования (Артем Носов)

SkyTools 3 ● Cooperative consumer● pgqd● Londiste: Parallel COPY

Page 18: SkyTools помощь в вопросах масштабирования (Артем Носов)

Вопросы?