Обзор ключевых изменений Windows Server 2008 R2 Александр Шаповал Microsoft Microsoft Платформа 2010 http://msplatforma.ru Рассматриваемые вопросы Презентация посвящена изменениям в ядре Windows Server 2008 R2 и Windows 7 Рассматриваются изменения в базовых компонентах ядра, направленные на повышение производительности, масштабируемости и безопасности системы Целый набор существенных изменений в ОС, таких как виртуализация, DirectAccess, BranchCache, PowerShell и др., рассматриваются в остальных докладах серверного трека Microsoft Платформа 2010 http://msplatforma.ru Ядро Windows 7 и Windows Server 2008 R2 базируются на одном ядре Windows Server 2008 R2 только 64-битный Wow64 – необязательная компонента режима Server Core Для совместимости приложений номер версии системы (ядра) – 6.1 Не отражает количество существенных изменений в системе Предполагает, что многие приложения будут проверять номер версии Windows Vista (6) Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru MinWin MinWin – первый шаг к созданию архитектурных разделов Может собираться, загружаться и тестироваться отдельно от остальной части ОС Более высокие уровни могут разрабатываться независимо MinWin – набор компонент, необходимых для загрузки и сетевого доступа “NT Дэвида Катлера”: ядро, драйвер файловой системы, стек TCP/IP, драйверы устройств, службы Нет оболочки, WMI, графики, аудио, утилит Размеры MinWin: 150 файлов, 25MB на диске, 40MB в памяти Microsoft Платформа 2010 http://msplatforma.ru Иерархическое представление Оболочка, Графика, Мультимедиа, Службы, Утилиты, и пр. MinWin Ядро, HAL, TCP/IP, Файловые системы, Драйверы, Службы ядра Microsoft Платформа 2010 http://msplatforma.ru Рефакторинг DLL Для снятия зависимостей от верхних уровней необходим рефакторинг DLL Приложения за пределами MinWin используют обычные DLL DLL перенаправляет запросы к MinWin API в MinWin DLL Пример: Kernel32.dll -> Kernelbase.dll Advapi32.dll -> Kernelbase.dll Microsoft Платформа 2010 http://msplatforma.ru Наборы API Проблема: DLL содержит множество API API связан с реализацией внутри DLL Наборы API (API Sets) – виртуальные DLL Внутренняя архитектура API отделена от реализации Виртуальные DLL могут быть скомбинированы на этапе компиляции для повышения эффективности Интерфейсы MinWin выполнены в виде виртуальных DLL: Пример: MICROSOFT-WINDOWS-SYSTEMERRORHANDLING-L1-1-0.DLL Номера показывают уровень, major- и minor-версию Microsoft Платформа 2010 http://msplatforma.ru Отображение в логические DLL Отображение виртуальных DLL в логические хранится в Apisetschema.dll Ядро читает схему во время загрузки и передает сопоставление каждому процессу для быстрого поиска Загрузчик использует схему для нахождения необходимой DLL Связи виртуальных DLL могут отображаться различными утилитами, например, Dependency Walker Загрузчик Вирт. DLL 1 ApiSetSchema.dll Логическая DLL Вирт. DLL 2 Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru Потребление памяти: клиент Снижение потребления памяти самыми различными компонентами 1400 Vista SP1 1200 Windows 7 Beta MB 1000 800 600 400 200 0 LaptopA LaptopB ShipA (x86) (x86) (x86) ShipB (x86) ShipG (x86) ShipH (x86) ShipI (x86) ShipJ LaptopA LaptopB ShipB (x86) (x64) (x64) (x64) Microsoft Платформа 2010 ShipJ (x64) http://msplatforma.ru Потребление памяти: сервер Потребление ОЗУ в состоянии “Простой” 250 Enterprise Full Enterprise Core 200 MB 150 100 50 0 W2K3 WS08 SP1 Microsoft Платформа 2010 WS08 R2 http://msplatforma.ru Оптимизация памяти За счет изменения архитектуры DWM удалось снизить потребление памяти на каждое окно в среднем на 50% Реестр считывается в страничный пул (paged pool) Ранее отображался в память При просмотрах реестра не нужно заново выполнять отображение (re-mapping) Microsoft Платформа 2010 http://msplatforma.ru Рабочий набор Рабочий набор (working set) – количество ОЗУ, выделяемое диспетчером памяти процессу Диспетчер позволяет использовать собственные страницы процесса более агрессивно Системный кэш, страничный пул, откачиваемый системный код имеют свой собственный рабочий набор Память расходуется более рационально Снижается влияние операций копирования на системный код Vista, Server 2008 System Cache, Paged Pool, System Code P1 P2 … P1 P2 … Windows 7, Server 2008 R2 System Cache Paged Pool System Code Microsoft Платформа 2010 http://msplatforma.ru PerfTrack PerfTrack: 300 сценариев пользовательских действий Примеры: открыть стартовое меню, открыть панель управления, загрузка системы По каждому сценарию поставлены цели Замеры проводились по началу/завершению события Данные собирались в рамках программы Customer Experience Program и возвращались соответствующей команде разработчиков Great OK Щелчок по стартовому меню Bad Стартовое меню открылось Microsoft Платформа 2010 http://msplatforma.ru PerfTrack – Меню «Пуск» Сборка 7000 Сборка 7033 Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru Ключевые факторы Потребление энергии (Вт) Минимизация запущенных сервисов и задач Сокращение операций в фоновом режиме Удержание логических процессоров (ЛП) и сокетов в состоянии «Простой» для последующего перевода с состояние сна 40.00 35.00 30.00 25.00 20.00 15.00 10.00 5.00 - +10% ЦПУ = +1.25Вт +1.25Вт = -8.3% батарея 0 50 100 Утилизация ЦПУ (%) Microsoft Платформа 2010 http://msplatforma.ru Парковка ядер Ранее, загрузка равномерно распределялась по доступным ЛП Даже если утилизация системы невысока ОС пытается загружать наименьшее количество ЛП Другие ЛП можно перевести в состояние сна Система распознает топологию сокетов Парковка применяется на серверах и системах с гипертрейдингом Максимальный возврат при средних нагрузках Клиенты как правило работают в предельных режимах (0% или 100%) Microsoft Платформа 2010 http://msplatforma.ru Парковка ядер Парковкой управляет родительский раздел Гипервизор отображает сведения об использовании ЦПУ в родительский раздел Сведения обновляются каждые 100 мс Родительский раздел сообщает гипервизору, какие ядра нужно парковать Гипервизор дает ядрам закончить текущую работу, но не планирует для них новую Тем не менее, ядра будут использоваться, если загрузка дочернего раздела возрастает Microsoft Платформа 2010 http://msplatforma.ru Парковка ядер Ядро 0 Ядро 1 Сокет 0 Ядро 0 Ядро 1 Сокет 1 Задача Microsoft Платформа 2010 http://msplatforma.ru Unified Background Process Manager (UBPM) UBPM унифицирует механизм запуска и останова процессов на основе событий Реализован в диспетчере служб, чтобы избежать создание нового процесса Все события основаны на ETW UBPM – центральный диспетчер регистрации и оповещения потребителей ETW Клиенты UBPM: Планировщик задач: новый процесс Taskhost Диспетчер служб: запуск служб на основе триггеров Microsoft Платформа 2010 http://msplatforma.ru Динамические службы Ранее, служба запускается при старте ОС и продолжает работу до выключения системы Службы могут указывать условия запуска и останова (триггеры): Включение/выключение Bluetooth-устройства Добавление/удаление IP-адреса Открытие/закрытие портов на Firewall Включение/исключение компьютера из домена Другие события Триггеры хранятся в ключе реестра службы Для просмотра используйте “sc qtriggerinfo” Microsoft Платформа 2010 http://msplatforma.ru Коалесцирующий таймер При срабатывании таймера дочернего раздела: Гипервизор получает прерывание от внешнего таймера Планирует задачи для дочернего раздела Возвращает управление в дочерний раздел Проблемы множества таймеров в разделах: Большое кол-во прерываний внешнего таймера Высокие расходы времени ЦПУ гипервизором Снижение эффективности работы ВМ Решение: выровнять интервалы таймеров в дочерних разделах Microsoft Платформа 2010 http://msplatforma.ru Реализация таймера Используется комбинация следующих методов: Физические прерывания для глобальных таймеров Выравнивание интервалов таймеров дочерних разделов 15.6мс Необъединенные события таймера 15.6мс 15.6мс Объединенные события таймера Сигнал таймера ВМ1 Сигнал таймера ВМ2 Сигнал таймера ВМ3 Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru Уровни User Account Control Два новых уровня настройки UAC Сокращают количество предупреждений Применяются к администраторам Microsoft Платформа 2010 http://msplatforma.ru Виртуальные учетные записи Обеспечивают лучшую изоляцию служб Свойства виртуальных учетных записей: Процесс запускается с виртуальным SID SID может использоваться в списках управления доступом ACL Пароли управляются системой В сетевых операциях выглядит как учетная запись компьютера Использование виртуальных учетных записей Имя учетной записи: “NT SERVICE\<service>” Диспетчер служб создает профиль для виртуальной записи Используются в пулах приложений IIS и в SQL Server Microsoft Платформа 2010 http://msplatforma.ru Управляемые записи служб Некоторым службам необходима идентификация в сети Ранее, доменная запись была единственным вариантом Администратор должен был управлять паролями и Service Principal Names (SPN) Возникали сбои при истечении срока действия пароля Windows Server 2008 R2 Active Directory поддерживает механизм Managed Service Accounts (MSA) Новый класс в AD Пароли и SPN управляются службой AD по аналогии с компьютерными учетными записями Настраиваются скриптами PowerShell Платформа 2010 http://msplatforma.ru Каждая запись можетMicrosoft использоваться только в одной системе BitLocker-To-Go Тип устройства Методы доступа Методы восст-ия Съемные носители информации, например: Пароль Пароль восстановления устройства USB flash внешние жесткие диски Смарт-карта Автоматическое монтирование Ключ восстановления Резервная копия пароля восстановления в Active Directory Data Recovery Agent Управление Доп. требования Более жесткий контроль с помощью групповых политик NTFS FAT FAT32 ExFAT Опция обязательного шифрования для получения права записи на носитель Microsoft Платформа 2010 http://msplatforma.ru Содержание Компонентизация Производительность Энергосбережение Безопасность Поддержка многоядерных систем Microsoft Платформа 2010 http://msplatforma.ru Dynamic Fair Share Scheduling (DFSS) Ранее, отсутствовало понятие «качество обслуживания» для терминальных пользователей Один пользователь мог оккупировать ресурсы ЦПУ Для роли RDS автоматически включается DFSS Сессии присваивается вес 1-9 (по умолчанию 5) Каждая сессия получает бюджет ЦПУ на интервал в 150 мс: Количество циклов в интервале / Суммарный вес * Вес сессии Вычитание происходит на каждом интервале планирования Если сессия исчерпала квоту, ее потоки помещаются в очередь «только во время простоя» Запускаются, если другие сессии не выполняют активности По окончании интервала бюджетирование повторяется Microsoft Платформа 2010 http://msplatforma.ru Логические процессоры (ЛП) Ранее, максимальное количество ЛП определялось разрядностью слова Состояние ЛП представлено битом в маске 32-битная версия: 32 ЛП 64-битная версия: 64 ЛП 32-битная процессорная маска 31 16 Простаивает 0 Занят Microsoft Платформа 2010 http://msplatforma.ru Логические процессоры (ЛП) С появлением многоядерной архитектуры получают распространение системы с количеством ЛП > 64 8 сокетов, 6 ядер, гипертрейдинг: 96 логических процессоров Необходима поддержка > 64 ЛП с сохранением совместимости Microsoft Платформа 2010 http://msplatforma.ru Поддержка более 64 ЛП ЛП разбиваются на группы В группе может быть до 64 ЛП Поддерживаются до 4 групп (максимальное количество ЛП – 256) Распределение по группам Одна группа, если система 32-битная или количество ЛП < 65 Иначе, минимальное количество групп, при котором NUMA-узлы располагаются в одной группе Microsoft Платформа 2010 http://msplatforma.ru Группировка процессоров Пример: 4 ЛП/ядро, 4 ядра/сокет, 2 сокета/узел, 4 узла: 128 ЛП Группа Группа NUMA-узел Ядро Ядро NUMA-узел Сокет Сокет Сокет Сокет Ядро Ядро Ядро Ядро Ядро Ядро LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP NUMA-узел Ядро NUMA-узел Сокет Сокет Ядро Ядро Ядро Сокет Сокет Ядро Ядро Ядро Ядро LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP LP Microsoft Платформа 2010 http://msplatforma.ru 256-процессорная система Microsoft Платформа 2010 http://msplatforma.ru Процессы, потоки и группы По умолчанию, все потоки процесса запускаются в одной группе Для присвоения процессу идеальной группы и идеального узла используется round-robin Потоку присваивается идеальный ЦПУ процесса, с использованием round-robin На уровне группы применяется прежний API Для использования > 64 ЛП приложение может присваивать потоки разным группам Каждый поток запускается на ЛП в пределах группы Microsoft Платформа 2010 http://msplatforma.ru Процессы, потоки и группы P1 T1 P1 T2 P2 T1 P2 T2 P3 T2 P3 T1 P4 T2 P4 T1 Группа 0 Группа 1 Microsoft Платформа 2010 http://msplatforma.ru Диспетчер памяти PFN-блокировка Windows отслеживает состояние страниц физической памяти Используется (принадлежит рабочему набору) Не принадлежит рабочему набору (находится в одном из списков: free, zero, modified, standby…) Ранее, любые изменения состояния страницы защищались глобальной PFN-блокировкой (Physical Frame Number lock) PFN-блокировки больше не используются Страницы блокируются индивидуально Существенно повышается масштабируемость приложений, использующих большие массивы памяти Microsoft Платформа 2010 http://msplatforma.ru Блокировка диспетчеризации Блокировки упорядочивают доступ к структурам данных Предотвращают одновременную модификацию данных разными потоками Снижают масштабируемость, поскольку потоки должны ожидать снятия блокировки Блокировка диспетчеризации оказывает наибольшее влияние на серверы Блокировка защищает любые изменения состояния потока Этот тип блокировки больше не используется Каждый объект защищен собственной блокировкой Многие операции производятся вообще без блокировок Microsoft Платформа 2010 http://msplatforma.ru «Мир без блокировок» Рост производительности в 1.7 раза при переходе с 64 ЛП на 128 ЛП Производительность OLTP 2500 Транзакций/мин. 2000 Fibers Threads 1500 1000 500 0 128 LP 256 LP Microsoft Платформа 2010 http://msplatforma.ru Итоги Windows Server 2008 R2 и Windows 7 содержат большое количество фундаментальных изменений на уровне ядра Изменения направлены прежде всего на повышение производительности, масштабируемости и безопасности системы Microsoft Платформа 2010 http://msplatforma.ru Ресурсы 12 ноября R2 302 Новые возможности Active Directory в Windows Server 2008 R2 R2 306 Обзор возможностей Windows Server 2008 R2 Remote Desktop Services и Virtual Desktop Infrastructure R2 208 Практика проектов виртуализации RT 204 Стратегия выбора и практика развертывания решений виртуализации Microsoft Платформа 2010 http://msplatforma.ru Ресурсы 13 ноября W7 202 Построение эффективной инфраструктуры филиалов на основе Windows 7 и Windows Server 2008 R2 R2 203 Hyper-V в Windows Server 2008 R2 / Hyper-V Server 2008 R2 R2 304 Автоматизация административных задач с помощью System Center и PowerShell R2 307 Построение высоконадежных систем: как выгоднее? R2 205 Пути миграции на Windows 7 и Windows Server 2008 R2 Microsoft Платформа 2010 http://msplatforma.ru Вопросы Александр Шаповал Эксперт по информационной инфраструктуре ashapo@microsoft.com http://blogs.technet.com/ashapo Вы сможете задать вопросы докладчику в зоне «Спроси эксперта» в течение часа после завершения этого доклада Microsoft Платформа 2010 http://msplatforma.ru