Document 5000102

advertisement
Обзор ключевых изменений
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
Download