Spec-Zone.ru › Ansible 2.11

Производительность Windows

В этом документе приведены некоторые оптимизации производительности, которые вы можете применить к своим хостам Windows, чтобы ускорить их работу, особенно в контексте использования Ansible, а также в целом.

Оптимизация производительности PowerShell для сокращения накладных расходов задач Ansible

Чтобы ускорить запуск PowerShell примерно в 10 раз, выполните следующий фрагмент PowerShell в сеансе администратора. Ожидайте, что это займет несколько десятков секунд.

Примечание

Если нативные изображения уже были созданы задачей или службой ngen, вы не заметите разницы в производительности (но этот фрагмент в этом случае будет выполняться быстрее, чем в противном случае).

function Optimize-PowershellAssemblies {
  # NGEN powershell assembly, improves startup time of powershell by 10x
  $old_path = $env:path
  try {
    $env:path = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
    [AppDomain]::CurrentDomain.GetAssemblies() | % {
      if (! $_.location) {continue}
      $Name = Split-Path $_.location -leaf
      if ($Name.startswith("Microsoft.PowerShell.")) {
        Write-Progress -Activity "Native Image Installation" -Status "$name"
        ngen install $_.location | % {"`t$_"}
      }
    }
  } finally {
    $env:path = $old_path
  }
}
Optimize-PowershellAssemblies

Модули Ansible для Windows используют PowerShell. Эта оптимизация сокращает время запуска PowerShell, устраняя эти накладные расходы при каждом вызове.

В этом фрагменте используется генератор нативных изображений ngen для предварительного создания нативных изображений для сборок, от которых зависит PowerShell.

Решение проблемы высокой загрузки ЦП при загрузке для ВМ/облачных экземпляров

Если вы создаете образцы для запуска экземпляров, вы можете избежать прерывистой высокой загрузки ЦП во время запуска с помощью обработки очереди ngen в процессе создания образцов, если вам известно, что типы ЦП не будут меняться между процессом создания образцов и временем выполнения.

Разместите следующее в конце вашего плейбука, учитывая факторы, которые могут привести к тому, что нативные изображения станут недействительными (см. MSDN).

- name: generate native .NET images for CPU
  win_dotnet_ngen:

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/user_guide/windows_performance.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API