Spec-Zone.ru › Ansible 2.9

Производительность 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

PowerShell используется каждым модулем Ansible для Windows. Эта оптимизация сокращает время запуска 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.9/user_guide/windows_performance.html

Spec-Zone.ru

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