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