Разработка высокопроизводительных серверных приложений для Linux/UNIX (Киев)

 
Время проведения
17
августа2013
Завершено

офис ИТ компании Cogniance, ул. Боженко 87 О, район м Лыбидская

Время проведения: 11:00 - 18:00

Описание

По многочисленным просьбам мы повторяем мастер-класс "Разработка высокопроизводительных серверных приложений для Linux/UNIX", если точнее его расширенную и дополненную версию: за 1 год многое изменилось.

Основной темой для нас будут методы и технологии, которые позволяют HTTP серверам, серверам Instant Messaging'а, серверам баз данных и другим серверным приложениям обрабатывать сотни тысяч запросов в секунду и гигабиты трафика на "железе" базового класса. Мы посмотрим на примеры кода, научимся их оптимизировать, разберемся в том, как ведет себя Linux под некоторыми типами нагрузок.

Целевая аудитория - разработчики, уже имеющие опыт программирования на C/C++ для Linux/UNIX, но желающие повысить производительность своих приложений.

ВАЖНО: для участия в онлайн трансляции введите в поле "Код скидки" слово ONLINE. Затем на указанную почту Вы получите письмо с детальными инструкциями.

План мероприятия

10:30-11:00

Регистрация участников

11:00-12:00

1.  архитектура сервера (потоки, процессы, очереди, ввод-вывод)

2.  concurrency (работа с потоками, синхронизация, переключения контекста)

3.  выравнивание данных и оптимизация работы кэшей процессора, оптимизация для NUMA

12:00-12:15

15 минут на кофе

12:15-13:15

4.  быстрые структуры данных, свойства классических структур данных

5.  постороение внутренних кэшей (структуры данных, политики вытеснения)

13:15-14:15

обед 1 час

14:15-15:15

6.  lock-free структуры данных (атомарные операции, барьеры памяти)

7.  аллокаторы памяти (когда нехватает стандартного аллокатора, типы аллокаторов, как разработать свой аллокатор)

15:15-15:30

15 минут на кофе

15:30-16:30

8.  zero-copy (сетевой и дисковый ввод-вывод без копирования (splice(),netmap и PF_RING, mmap() и O_DIRECT), техники снижения копирования в своем коде)

9.  как Linux работает с файлами (фафловые системы, page cache, синхронизация с диском, планирование ввода-вывода), методы работы с большими файлами и большим числом файлов

16:30-16:45

15 минут на кофе

16:45-17:45

10. CPU-binding (привязка потоков/процессов и прерываний к процессорам)
11. профилирование и системная статистика (oprofile, perf, ftrace,systemtap);

12. когда этого мало и стоит переходить на kernel programming.