профилированиеЭрливидео презентация

Содержание

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

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


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


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


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


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


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

что-то делать

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


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


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


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


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


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

у каждого процесса

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


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

последовательны

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


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


Слайд 17Мониторинг
Меряем очереди сообщений
erlang:process_info(Pid,message_queue_len)


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


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


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

процессы

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

ядрам

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


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

расползутся по ядрам

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

несложны и эффективны

Слайд 25Вопросы?
Макс Лапшин
max@erlyvideo.org


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика