!!9hl2008 New
Upcoming SlideShare
Loading in...5
×
 

!!9hl2008 New

on

  • 2,382 views

 

Statistics

Views

Total Views
2,382
Views on SlideShare
1,155
Embed Views
1,227

Actions

Likes
0
Downloads
65
Comments
0

8 Embeds 1,227

http://www.highload.ru 644
http://highload.ru 449
http://archive.highload.ru 79
http://2012.highload.co 49
http://webcache.googleusercontent.com 2
http://2012en.highload.ru 2
http://209.85.129.132 1
http://2012.highload.ru 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

!!9hl2008 New !!9hl2008 New Presentation Transcript

  • Балансировка, кэширование, авторизация. Вместе? Марко Кевац
  • Балансировка нагрузки
    • Запросы разные по сложности
    • Машины разные по производительности
    • Равномерное распределение неэффективно
    • Распределение с весами неэффективно
    Недостатки стандартного распределения
  • Что из этого должно работать обязательно? Что из этого не важно? А если ещё n условий? Когда считать узел « готовым к обслуживанию » ? А когда считать « восставшим из мёртвых? » Железки такого не умеют
    • Узел:
    • Web-cервер
    • App-сервер
    • Memcached
    • Mysql-slave
    • Loganalyzer
    • ...
    • Нагрузка
    • Состояние сервисов
    • Состояние кэша
    Умный балансировщик
    • Элементы High Availability
    • Слежение за сервисами на узлах
    • Слежение за подсистемой кэша
    Демон статистики Модуль Apache
    • У каждого worker-а есть
    • свой вес , который зависит
    • от нагруженности .
    • Чем сильнее узел нагружен,
    • тем меньше у него вес.
    for each worker in workers worker status + = worker weight total weight + = worker weight if worker status > candidate status candidate = worker candidate status - = total weight Алгоритм балансирования
  • Кэширование
  • app server web server cache cache cache app server web server cache Кэширование « всего » Самый распространённый метод Кэширование « всего »
  • Первый уровень Второй уровень cache cache cache (ключ, значение) ? (ключ, значение) cache ? DHT – Distributed Hash Table
  • High Availability Cache
    • Автоматическое добавление новых кэшей.
    • Автоматическое удаление неработающих кэшей.
    • Автоматическое восстановление вновь
    • заработавших кэшей.
  • Бонусы
    • Автоматическое разделение мух от котлет:
    • больших ответов, от маленьких.
    • Большие храним на диске.
    • Не нужна распределённая файловая система.
    • Persistent кэш – для больших файлов (они и так
    • на диске).
  • Аутентификация и Авторизация
  • паспорт = base64( blowfish( права + sha1( права ) ) ) права = битовая маска + всё что душе угодно Из чего состоит паспорт?
  • (id, uri regexp, method, permission) [0, 1, 1, 0, 0, 1, 0, 1, 0, 0, ...] Битовая маска прав
  • Где применимо? Преимущества.
    • Подход идеален для RESTfull архитектур
    • Быстрая проверка прав
    • Сессии не нужны
  • Протестировано электроникой: beta.micex.ru
    • Не очень большое кол-во пользователей (40-60к/день)
    • могут генерировать большое (10-30 миллионов/день)
    • количество запросов
    • Данные всегда должны быть актуальны
    • Данные нужны отдавать как можно быстрее
    • Регулярные всплески: ход торгов, итоговая информация
    • по регламенту торгов
    • Непредсказуемые всплески: кризисы
  • Статистика
    • Скрипт анализирует логи в real time и заносит их в БД
    • Другой скрипт по cron-у раз в минуту аггрегирует данные
    • Графическая подсистема по данным строит графики
  • Медленные запросы
    • Система слежения за медленными запросами
    • Позволяет выявлять запросы, ответ на которые готовится очень долго
  • Марко Кевац E-mail/JID: mkevac@gmail.com
  • ВОПРОСЫ?