Профилирование Эрливидео Макс Лапшин max@erlyvideo.org.

Презентация:



Advertisements
Похожие презентации
Erlyvideo потоковое видео на Erlang Макс Лапшин
Advertisements

Erlang: сырая игрушка или надежный инструмент? Макс Лапшин, «Злые марсиане»
Сервер Flash-вещаний (RTMP) на Python или создание высоконагруженных сетевых серверов с использованием Twisted Андрей Смирнов NetStream.
Скорость имеет значение Проблема медленных сайтов реальна Мациевский Николай, Web Optimizator 1 / 19 webo.in / webo.name.
Управление распределенными командами при помощи сервиса «Простой бизнес» (с) 2013www.prostoy.ru.
СИСТЕМА МОБИЛЬНЫХ СЕРВИСОВ И ПРИЛОЖЕНИЙ. Выберите Ваш телефон.
Rails Scale: 1000 запросов в секунду Макс Лапшин
ИЗУЧЕНИЕ СТАТИСТИКИ ВСТРЕЧАЕМОСТИ ТЕРМИНОВ И ПАР ТЕРМИНОВ В ТЕКСТАХ ДЛЯ ВЫБОРА МЕТОДОВ СЖАТИЯ ИНВЕРТИРОВАННОГО ФАЙЛА. Губин Максим Вадимович «Информационная.
Каналы связи Рис Структура системы телеобработки данных Абонентская станция 1 Абонентская станция 2 Абонентская станция 3 Главный компьютер.
Контроль за эффективностью использования IT-инфраструктуры с точки зрения бизнеса при помощи Progress Actional. Соколов Максим, Progress Technologies.
Библиотека для разработки распределенных приложений на.NET Студент: Тимофеев А.Е. Руководитель:Терехов А.Н. Рецензент: Здебский Р.Б.
Презентацию подготовил Айзатуллин Данис, гр.950б.
Новые технологии. Новые возможности. Новый лидер. Цифровая система видеонаблюдения
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Лекция 6 Методы обеспечения качества обслуживания кафедра ЮНЕСКО по НИТ1.
Основы организации сетей Сети и системы телекоммуникаций Созыкин А.В.
Видео в МСС Иванов Сергей, гр Содержание Аналоговые системы Цифровые системы Видео - приложения в МСС.
1 Концепция Web 2.0 Пользователи становятся активными участниками работы сети. Мы наполняем сеть информацией, сами её организуем, сами определяем параметры.
О ПРЕДЕЛЕНИЕ. Операционная система, сокр. ОС (англ. operating system, OS ) комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают.
Транксрипт:

профилирование Эрливидео Макс Лапшин

Эрливидео Потоковое видео Разные протоколы: MPEG-TS, RTMP, … Высокая эффективность

Разные нагрузки Тысячи пар: один источник, один клиент Один источник, тысячи клиентов

Видео Один поток: 50 кадров/сек, 500 КБит/с 2000 клиентов кадров/сек. Суммарно 1 ГБит/с

RTMP У каждого клиента своё Каждому клиенту своя копия потока Данные общие, заголовки разные

RTMP Скорости не хватает клиент залипает Ошибка в тайстемпе клиент залипает Клиент залипает надо что-то делать

Рост эрливидео Начались проблемы на 800 клиентах Неверная архитектура Пришлось профилировать

Профилирование Девелопмент одно продакшн другое Разные версии клиентов Разные скорости каналов Разные задержки на каналах

Профилирование Профилирование на продакшне Не отключая пользователей Без деградации системы

Инструменты Valgrind и профилировщики тормозят систему gdb вносит искажения в код

Инструменты Erlang предлагает другие подходы к профилированию

Erlang Данные и потоки выполнения объединены, как процессы ОС Обмен асинхронными сообщениями Message box у каждого процесса

Erlang Все данные немутабельные Процесс рекурсивная функция, вызывающая себя с новым значением

Erlang Один процесс под каждого клиента Один процесс под каждый «объект» Вызовы методов строго последовательны

Lowload Процесс-«поток» шлет сообщения процессам-«клиентам» Клиенты упаковывают RTMP сами в системе FPS*N сообщений

Тормоза Начинаются «лаги» и «залипание» Куда смотреть? Что мерять?

Мониторинг Меряем очереди сообщений erlang:process_info(Pid,message_queue _len)

Мониторинг Меряем загрузку CPU etop:start() мониторим общую память процессов

Узкие места В узких местах накапливаются сообщения Растет CPU, потребляемый процессом Накапливается память

Узкие места Процессу не хватает одного ядра Недообрабатывает сообщения Накапливается память Встают в ожидании клиентские процессы

Как боролись? Уменьшили количество сообщений Прямая запись в сокет Распараллелили запись в сокеты по ядрам

Результат Во много раз увеличили количество одновременных клиентов

Рекомендации Планировать количество проходящих сообщений Уменьшать работу внутри вызываемого процесса Раскладывать работу по процессам расползутся по ядрам

Выводы Профилировка приложений на erlang возможен без деградации качества обслуживания Методы поиска проблем несложны и эффективны

Вопросы? Макс Лапшин