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