Разработка высокопроизводительных серверных приложений для Linux/UNIX
Мастер-класс с онлайн-трансляцией "Разработка высокопроизводительных серверных приложений для Linux/UNIX".
Основной темой для нас будут методы и технологии, которые позволяют HTTP серверам, серверам Instant Messaging'а, серверам баз данных и другим серверным приложениям обрабатывать сотни тысяч запросов в секунду и гигабиты тарфика на "железе" базового класса. Мы посмотрим на примеры кода, научимся их оптимизировать, разберемся в том, как ведет себя Linux под некоторыми типами нагрузок.
- архитектура сервера (потоки, процессы, очереди, ввод-вывод)
- concurrency (работа с потоками, синхронизация, переключения контекста)
- быстрые структуры данных, свойства классических структур данных
- выравнивание данных и оптимизация работы кэшей процессора
- lock-free структуры данных
- аллокаторы памяти (когда не хватает стандартного аллокатора, типы аллокаторов, как разработать свой аллокатор)
- построение внутренних кэшей (структуры данных, политики вытеснения)
- zero-copy (сетевой и дисковый ввод-вывод без копирования, техники снижения копирования в своем коде)
- CPU-binding (привязка потоков/процессов и прерываний к процессорам)
- методы работы с большими файлами (доступ с помощью mmap() и O_DIRECT, выделение блоков)
- как Linux работает с файлами (page cache, синхронизация с диском; планирование ввода-вывода)
- профилирование;
- когда этого мало и стоит переходить на kernel programming.
Подробности и регистрация на сайте SmartMe.