SlideShare ist ein Scribd-Unternehmen logo
1 von 31
1© Copyright 2011 EMC Corporation. All rights reserved.
VMware ESXi 5.1
Планировщик
процессора
Антон Жбанков
http://blog.vadmin.ru
2© Copyright 2011 EMC Corporation. All rights reserved.
Терминология
• Socket
• pCPU
– Ядро
– Логический процессор при HT
• Cache
• LLC – Last level cache
– Последний уровень кэша перед обращением в память
• vCPU (World)
• NUMA
3© Copyright 2011 EMC Corporation. All rights reserved.
Состояния world
4© Copyright 2011 EMC Corporation. All rights reserved.
Что планировать?
• ВМ состоит из одного или несколько world
– 1 world на каждый vCPU
– а также существуют world, обслуживающие мышь, клавиатуру и
legacy I/O устройства
– Теоретически для 1vCPU 100+% возможно, но маловероятно
• VMkernel management worlds
• Прерывания и контексты ввода-вывода (IO)
5© Copyright 2011 EMC Corporation. All rights reserved.
Что планировать?
• Планировщик вызывается при истечении кванта
времени, выделенного world
– 50 мс по умолчанию
– Либо по переходу world в состояние Wait
• Ищется следующий world в состоянии Ready в
локальной или удаленной очереди
• Если нет ни одного в состоянии Ready, то планируется
world в состоянии Idle
• Также планировщик вызывается при переходе из Wait в
Ready (напр. по прерыванию или сигналу)
6© Copyright 2011 EMC Corporation. All rights reserved.
Алгоритм пропорциональных долей
• Алгоритм выбора world для исполнения
– На основе Share, Limit, Reserve
• World может не полностью потребить выделенные
ресурсы из-за фрагментации
– Становится высокого приоритета и попадает в очередь
• Критическим становится биллинг – кто сколько потребил
7© Copyright 2011 EMC Corporation. All rights reserved.
Shares
8© Copyright 2011 EMC Corporation. All rights reserved.
Reserve
9© Copyright 2011 EMC Corporation. All rights reserved.
Limit
10© Copyright 2011 EMC Corporation. All rights reserved.
Приоритет
• UNIX
– Приоритет произвольно назначается пользователем
– Имеет числовое значение
– При сравнении имеет значение только у кого приоритет больше
• ESXi
– Приоритет постоянно перевычисляется
– На основе выделенных и реально потребленных ресурсов
– Пользователь не может назначить приоритет world напрямую,
только через Share, Limit и Reserve
11© Copyright 2011 EMC Corporation. All rights reserved.
Co-Scheduling
• Для vSMP (vCPU > 1) все vCPU world необходимо
исполнять одновременно
• При непараллельном исполнии резко возрастает
задержка при межпроцессном взаимодействии
• Как итог – перерасход ресурсов
• Skew – числовой показатель разности между прогрессом
vCPU одной машины
12© Copyright 2011 EMC Corporation. All rights reserved.
Strict Co-Scheduling (ESX 2.x)
• При превышении порогового значения Skew машина
целиком останавливалась
• Исполнение возобновлялось только при наличии
свободных таймслотов для всех vCPU
• Idle vCPU всегда считается равным самому быстрому
vCPU
• 4x vCPU ВМ могла не попасть в очередь при наличии 3х
свободных pCPU
• Итог – фрагментация процессора, низкая
производительность
13© Copyright 2011 EMC Corporation. All rights reserved.
Strict Co-Scheduling (ESX 2.x)
Всего 61%
pCPU1 pCPU2 pCPU3 pCPU4
14© Copyright 2011 EMC Corporation. All rights reserved.
Relaxed Co-Scheduling
• Каждый vCPU измеряет собственный прогресс
• При превышении порогового значения Skew
лидирующий vCPU переходит в состоянии Co-Stop
• По мере снижения значения Skew и при наличии
свободного pCPU world может перейти из состояния Co-
Stop в Co-Start
• Значительное снижение фрагментации, 4x vCPU
машина может работать при всего 1 свободном pCPU
15© Copyright 2011 EMC Corporation. All rights reserved.
Relaxed Co-Scheduling
pCPU1 pCPU2 pCPU3 pCPU4
Уже 73%
16© Copyright 2011 EMC Corporation. All rights reserved.
Балансировка нагрузки
• Миграция world
– Pull инициируется pCPU при переходе в Idle
– Push инициируется vCPU при переходе в Ready
• Стоимость миграции
– Снова прогревать кэш – очень сильно влияет на отдельные
виды нагрузки
• Goodness of Migration
– Для каждой пары vCPU-pCPU вычисляется значение пользы
миграции (Goodness) и осуществляется миграция с
максимальной пользой
17© Copyright 2011 EMC Corporation. All rights reserved.
Польза миграции
• CPU load
– При высокой загрузке pCPU источника и низкой pCPU
назначения польза считается высокой
• Last-Level Cache
– В первую очередь рассматриваются pCPU с общим LLC,
поскольку обращение к памяти на порядок медленнее
– В особенности важно для vSMP машин
• Hyper-Threading
– Польза миграции повышается, если соседний логический
процессор HT пары менее загружен
18© Copyright 2011 EMC Corporation. All rights reserved.
Польза миграции
• Топологическая дистанция
– Для pCPU-pCPU расчитывается топологическая дистанция
– HT пара делит общий L1 кэш, что делает ТД меньше, чем для
двух pCPU с общим LLC
– pCPU без общего LLC имеют еще большую ТД
• Стоимость миграции против пользы миграции
– Прогрев кэша расходует ресурсы
– Может получиться, что оставить как есть дешевле, чем
мигрировать
19© Copyright 2011 EMC Corporation. All rights reserved.
Польза миграции
• Co-scheduling
– Планировщик максимально избегает размещения двух vCPU
одной ВМ на одном и том же pCPU во избежание разбега
– Польза считается значительно выше, если на pCPU назначения
не размещен другой vCPU той же ВМ
• Коммуникация между контекстами
– Планировщик оценивает уровень межпроцессного
взаимодействия
– vCPU с высоким уровнем общения с большей вероятностью
будут размещены «поблизости», чтобы увеличить попадания в
кэш
20© Copyright 2011 EMC Corporation. All rights reserved.
Hyper-Threading
• HT процессор = 2 потока на ядро
– Производительность каждого потока зависит от второго
– Поток со свободным 2м дает больше вычислительной
мощности, чем если оба потока заняты
• Биллинг для HT процессоров отличается
– Принцип честности
• Последние поколения процессоров лучше справляются
– ESXi 5.x с большей вероятностью выбирает HT поток, чем
ранее
– Полностью свободное ядро все еще имеет больший приоритет
21© Copyright 2011 EMC Corporation. All rights reserved.
NUMA
• NUMA – Non Uniform Memory Access
• NUMA узел
– Процессор (Socket)
– Его память (локальная)
• Стоимость доступа к чужой памяти выше
– Максимально оставаться в рамках узла
– vCPU размещаются только в NUMA home (домашнем узле)
– Смена NUMA home
• Миграция памяти – дело дорогое
– Осуществляется только если ВМ остается в новом узле долго
22© Copyright 2011 EMC Corporation. All rights reserved.
NUMA миграция
• Для кратковременной балансировки CPU
• Для повышения локальности памяти
– Если память еще не была мигрирована, то имеет смысл
мигрировать ВМ назад
• ВМ с частой коммуникацией между ними
– /Numa/LocalityWeightActionAffinity 0
• Для обеспечения принципа честности в долгой
перспективе
– /Numa/LTermFairnessInterval 0
23© Copyright 2011 EMC Corporation. All rights reserved.
Wide NUMA
• Широкая NUMA машина
– Количество vCPU > количества pCPU в NUMA узле
• Широкая машина разбивается на несколько клиентов
– Каждый клиент должен помещаться в узле
• HT
– HT удваивает количество логических ядер, поэтому 8 vCPU ВМ
на 4х ядерном процессоре с HT будет попадать в размер NUMA
узла
– numa.vcpu.preferHT TRUE
24© Copyright 2011 EMC Corporation. All rights reserved.
Память для Wide NUMA
• Равномерно чередуется для широких машин в 4.x
– NUMA скрывается от гостевой ОС
• vSphere 5.x vNUMA
– NUMA презентуется гостевой ОС
25© Copyright 2011 EMC Corporation. All rights reserved.
Память для Wide NUMA
26© Copyright 2011 EMC Corporation. All rights reserved.
vNUMA – SPEC OMP
27© Copyright 2011 EMC Corporation. All rights reserved.
Проблемы vNUMA
• В физическом мире топология NUMA неизменна
• В виртуальном меняется
– vMotion на хост с иной топологией
– Не все приложения понимают изменение топологии
• Автоконфигурация
– numa.autosize TRUE
– numa.autosize.once FALSE
– Требуется перезагрузка
28© Copyright 2011 EMC Corporation. All rights reserved.
Несоответствие NUMA и vNUMA
• vNUMA < NUMA
– vNUMA целиком помещается в узел. Никаких проблем
• vNUMA = x*NUMA
– vNUMA разбивается на x NUMA узлов и память чередуется
между ними
• vNUMA != x*NUMA
– vNUMA все еще сохраняется для гостевой ОС
– NUMA клиенты определяются в зависимости от размера NUMA
узла, а не vNUMA. Память чередуется между ними
– По факту vNUMA просто не работает
29© Copyright 2011 EMC Corporation. All rights reserved.
Выводы
• Избегайте ресурсов (vCPU) на всякий случай
• Узнайте свою инфраструктуру
– NUMA
– Процессорная архитектура
• Большие машины требуют планирования
• Избегайте менять значения расширенных параметров
– Значений по умолчанию достаточно в 99% случаев
• Сначала подумал – потом сделал!
– А не наоборот!
30© Copyright 2011 EMC Corporation. All rights reserved.
Контакты – Антон Жбанков
• EMC Senior SE /
Software Defined Specialist
• anton.zhbankov@emc.com
• anton@vadmin.ru
• http://blog.vadmin.ru
• @antonvirtual
• + Facebook, LinkedIn etc…
31© Copyright 2011 EMC Corporation. All rights reserved.
THANK YOU

Weitere ähnliche Inhalte

Was ist angesagt?

Практический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-системПрактический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-систем
Alex Chistyakov
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
Ontico
 
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Ontico
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
AvitoTech
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Ontico
 
Максим Шапошников, Nutanix
Максим Шапошников, NutanixМаксим Шапошников, Nutanix
Максим Шапошников, Nutanix
Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
Ontico
 

Was ist angesagt? (19)

Практический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-системПрактический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-систем
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)Percona XtraBackup: экспертные возможности (Алексей Копытов)
Percona XtraBackup: экспертные возможности (Алексей Копытов)
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализациюОбзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
 
My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016
 
Резервное копирование не только виртуальных сред при помощи продуктов Veeam
Резервное копирование не только виртуальных сред при помощи продуктов VeeamРезервное копирование не только виртуальных сред при помощи продуктов Veeam
Резервное копирование не только виртуальных сред при помощи продуктов Veeam
 
Максим Шапошников, Nutanix
Максим Шапошников, NutanixМаксим Шапошников, Nutanix
Максим Шапошников, Nutanix
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решениеViolin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
Violin Memory. Первая скрипка Huawei Dorado. Антикризисное решение
 
EMC XtremIO. Превосходя ожидания
EMC XtremIO. Превосходя ожиданияEMC XtremIO. Превосходя ожидания
EMC XtremIO. Превосходя ожидания
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
Непрерывность работы критичных сервисов
Непрерывность работы критичных сервисовНепрерывность работы критичных сервисов
Непрерывность работы критичных сервисов
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
 
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
Настройка kubernetes: tips and tricks / Михаил Прокопчук (Avito)
 
Слава Машканов — “Wubuntu”: Построение гетерогенной среды Windows+Linux на н...
Слава Машканов — “Wubuntu”: Построение гетерогенной среды  Windows+Linux на н...Слава Машканов — “Wubuntu”: Построение гетерогенной среды  Windows+Linux на н...
Слава Машканов — “Wubuntu”: Построение гетерогенной среды Windows+Linux на н...
 

Ähnlich wie ESXi 5.x CPU scheduler

Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Ontico
 
Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...
HappyDev
 
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Mikhail Kurnosov
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
Dmitry Buzdin
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
MUK
 

Ähnlich wie ESXi 5.x CPU scheduler (20)

Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
1. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 20131. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 2013
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
 
кластеры и суперкомпьютеры
кластеры и суперкомпьютерыкластеры и суперкомпьютеры
кластеры и суперкомпьютеры
 
Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...
 
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Архитектура и уникальные особенности магистральной платформы Cisco NCS 6000
Архитектура и уникальные особенности магистральной платформы Cisco NCS 6000Архитектура и уникальные особенности магистральной платформы Cisco NCS 6000
Архитектура и уникальные особенности магистральной платформы Cisco NCS 6000
 
Eventmachine: структура evented-приложений
Eventmachine: структура evented-приложенийEventmachine: структура evented-приложений
Eventmachine: структура evented-приложений
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАсинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...
Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...
Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...
 
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
Кирилл Науменко. "Выжать максимум". IT-пятница, сентябрь 2018.
 

ESXi 5.x CPU scheduler

  • 1. 1© Copyright 2011 EMC Corporation. All rights reserved. VMware ESXi 5.1 Планировщик процессора Антон Жбанков http://blog.vadmin.ru
  • 2. 2© Copyright 2011 EMC Corporation. All rights reserved. Терминология • Socket • pCPU – Ядро – Логический процессор при HT • Cache • LLC – Last level cache – Последний уровень кэша перед обращением в память • vCPU (World) • NUMA
  • 3. 3© Copyright 2011 EMC Corporation. All rights reserved. Состояния world
  • 4. 4© Copyright 2011 EMC Corporation. All rights reserved. Что планировать? • ВМ состоит из одного или несколько world – 1 world на каждый vCPU – а также существуют world, обслуживающие мышь, клавиатуру и legacy I/O устройства – Теоретически для 1vCPU 100+% возможно, но маловероятно • VMkernel management worlds • Прерывания и контексты ввода-вывода (IO)
  • 5. 5© Copyright 2011 EMC Corporation. All rights reserved. Что планировать? • Планировщик вызывается при истечении кванта времени, выделенного world – 50 мс по умолчанию – Либо по переходу world в состояние Wait • Ищется следующий world в состоянии Ready в локальной или удаленной очереди • Если нет ни одного в состоянии Ready, то планируется world в состоянии Idle • Также планировщик вызывается при переходе из Wait в Ready (напр. по прерыванию или сигналу)
  • 6. 6© Copyright 2011 EMC Corporation. All rights reserved. Алгоритм пропорциональных долей • Алгоритм выбора world для исполнения – На основе Share, Limit, Reserve • World может не полностью потребить выделенные ресурсы из-за фрагментации – Становится высокого приоритета и попадает в очередь • Критическим становится биллинг – кто сколько потребил
  • 7. 7© Copyright 2011 EMC Corporation. All rights reserved. Shares
  • 8. 8© Copyright 2011 EMC Corporation. All rights reserved. Reserve
  • 9. 9© Copyright 2011 EMC Corporation. All rights reserved. Limit
  • 10. 10© Copyright 2011 EMC Corporation. All rights reserved. Приоритет • UNIX – Приоритет произвольно назначается пользователем – Имеет числовое значение – При сравнении имеет значение только у кого приоритет больше • ESXi – Приоритет постоянно перевычисляется – На основе выделенных и реально потребленных ресурсов – Пользователь не может назначить приоритет world напрямую, только через Share, Limit и Reserve
  • 11. 11© Copyright 2011 EMC Corporation. All rights reserved. Co-Scheduling • Для vSMP (vCPU > 1) все vCPU world необходимо исполнять одновременно • При непараллельном исполнии резко возрастает задержка при межпроцессном взаимодействии • Как итог – перерасход ресурсов • Skew – числовой показатель разности между прогрессом vCPU одной машины
  • 12. 12© Copyright 2011 EMC Corporation. All rights reserved. Strict Co-Scheduling (ESX 2.x) • При превышении порогового значения Skew машина целиком останавливалась • Исполнение возобновлялось только при наличии свободных таймслотов для всех vCPU • Idle vCPU всегда считается равным самому быстрому vCPU • 4x vCPU ВМ могла не попасть в очередь при наличии 3х свободных pCPU • Итог – фрагментация процессора, низкая производительность
  • 13. 13© Copyright 2011 EMC Corporation. All rights reserved. Strict Co-Scheduling (ESX 2.x) Всего 61% pCPU1 pCPU2 pCPU3 pCPU4
  • 14. 14© Copyright 2011 EMC Corporation. All rights reserved. Relaxed Co-Scheduling • Каждый vCPU измеряет собственный прогресс • При превышении порогового значения Skew лидирующий vCPU переходит в состоянии Co-Stop • По мере снижения значения Skew и при наличии свободного pCPU world может перейти из состояния Co- Stop в Co-Start • Значительное снижение фрагментации, 4x vCPU машина может работать при всего 1 свободном pCPU
  • 15. 15© Copyright 2011 EMC Corporation. All rights reserved. Relaxed Co-Scheduling pCPU1 pCPU2 pCPU3 pCPU4 Уже 73%
  • 16. 16© Copyright 2011 EMC Corporation. All rights reserved. Балансировка нагрузки • Миграция world – Pull инициируется pCPU при переходе в Idle – Push инициируется vCPU при переходе в Ready • Стоимость миграции – Снова прогревать кэш – очень сильно влияет на отдельные виды нагрузки • Goodness of Migration – Для каждой пары vCPU-pCPU вычисляется значение пользы миграции (Goodness) и осуществляется миграция с максимальной пользой
  • 17. 17© Copyright 2011 EMC Corporation. All rights reserved. Польза миграции • CPU load – При высокой загрузке pCPU источника и низкой pCPU назначения польза считается высокой • Last-Level Cache – В первую очередь рассматриваются pCPU с общим LLC, поскольку обращение к памяти на порядок медленнее – В особенности важно для vSMP машин • Hyper-Threading – Польза миграции повышается, если соседний логический процессор HT пары менее загружен
  • 18. 18© Copyright 2011 EMC Corporation. All rights reserved. Польза миграции • Топологическая дистанция – Для pCPU-pCPU расчитывается топологическая дистанция – HT пара делит общий L1 кэш, что делает ТД меньше, чем для двух pCPU с общим LLC – pCPU без общего LLC имеют еще большую ТД • Стоимость миграции против пользы миграции – Прогрев кэша расходует ресурсы – Может получиться, что оставить как есть дешевле, чем мигрировать
  • 19. 19© Copyright 2011 EMC Corporation. All rights reserved. Польза миграции • Co-scheduling – Планировщик максимально избегает размещения двух vCPU одной ВМ на одном и том же pCPU во избежание разбега – Польза считается значительно выше, если на pCPU назначения не размещен другой vCPU той же ВМ • Коммуникация между контекстами – Планировщик оценивает уровень межпроцессного взаимодействия – vCPU с высоким уровнем общения с большей вероятностью будут размещены «поблизости», чтобы увеличить попадания в кэш
  • 20. 20© Copyright 2011 EMC Corporation. All rights reserved. Hyper-Threading • HT процессор = 2 потока на ядро – Производительность каждого потока зависит от второго – Поток со свободным 2м дает больше вычислительной мощности, чем если оба потока заняты • Биллинг для HT процессоров отличается – Принцип честности • Последние поколения процессоров лучше справляются – ESXi 5.x с большей вероятностью выбирает HT поток, чем ранее – Полностью свободное ядро все еще имеет больший приоритет
  • 21. 21© Copyright 2011 EMC Corporation. All rights reserved. NUMA • NUMA – Non Uniform Memory Access • NUMA узел – Процессор (Socket) – Его память (локальная) • Стоимость доступа к чужой памяти выше – Максимально оставаться в рамках узла – vCPU размещаются только в NUMA home (домашнем узле) – Смена NUMA home • Миграция памяти – дело дорогое – Осуществляется только если ВМ остается в новом узле долго
  • 22. 22© Copyright 2011 EMC Corporation. All rights reserved. NUMA миграция • Для кратковременной балансировки CPU • Для повышения локальности памяти – Если память еще не была мигрирована, то имеет смысл мигрировать ВМ назад • ВМ с частой коммуникацией между ними – /Numa/LocalityWeightActionAffinity 0 • Для обеспечения принципа честности в долгой перспективе – /Numa/LTermFairnessInterval 0
  • 23. 23© Copyright 2011 EMC Corporation. All rights reserved. Wide NUMA • Широкая NUMA машина – Количество vCPU > количества pCPU в NUMA узле • Широкая машина разбивается на несколько клиентов – Каждый клиент должен помещаться в узле • HT – HT удваивает количество логических ядер, поэтому 8 vCPU ВМ на 4х ядерном процессоре с HT будет попадать в размер NUMA узла – numa.vcpu.preferHT TRUE
  • 24. 24© Copyright 2011 EMC Corporation. All rights reserved. Память для Wide NUMA • Равномерно чередуется для широких машин в 4.x – NUMA скрывается от гостевой ОС • vSphere 5.x vNUMA – NUMA презентуется гостевой ОС
  • 25. 25© Copyright 2011 EMC Corporation. All rights reserved. Память для Wide NUMA
  • 26. 26© Copyright 2011 EMC Corporation. All rights reserved. vNUMA – SPEC OMP
  • 27. 27© Copyright 2011 EMC Corporation. All rights reserved. Проблемы vNUMA • В физическом мире топология NUMA неизменна • В виртуальном меняется – vMotion на хост с иной топологией – Не все приложения понимают изменение топологии • Автоконфигурация – numa.autosize TRUE – numa.autosize.once FALSE – Требуется перезагрузка
  • 28. 28© Copyright 2011 EMC Corporation. All rights reserved. Несоответствие NUMA и vNUMA • vNUMA < NUMA – vNUMA целиком помещается в узел. Никаких проблем • vNUMA = x*NUMA – vNUMA разбивается на x NUMA узлов и память чередуется между ними • vNUMA != x*NUMA – vNUMA все еще сохраняется для гостевой ОС – NUMA клиенты определяются в зависимости от размера NUMA узла, а не vNUMA. Память чередуется между ними – По факту vNUMA просто не работает
  • 29. 29© Copyright 2011 EMC Corporation. All rights reserved. Выводы • Избегайте ресурсов (vCPU) на всякий случай • Узнайте свою инфраструктуру – NUMA – Процессорная архитектура • Большие машины требуют планирования • Избегайте менять значения расширенных параметров – Значений по умолчанию достаточно в 99% случаев • Сначала подумал – потом сделал! – А не наоборот!
  • 30. 30© Copyright 2011 EMC Corporation. All rights reserved. Контакты – Антон Жбанков • EMC Senior SE / Software Defined Specialist • anton.zhbankov@emc.com • anton@vadmin.ru • http://blog.vadmin.ru • @antonvirtual • + Facebook, LinkedIn etc…
  • 31. 31© Copyright 2011 EMC Corporation. All rights reserved. THANK YOU