Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ESXi 5.x CPU scheduler

12,474 views

Published on

Механизм работы планировщика процессора ESXi.

Published in: Technology
  • Be the first to comment

ESXi 5.x CPU scheduler

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

×