Как улучшить производительность команд ChefDK в Windows 10? - PullRequest
1 голос
/ 18 апреля 2019

В прошлом я устанавливал ChefDK на Windows 7, и он работал довольно быстро. Недавно я установил новую версию ChefDK в 64-разрядной версии Windows 10 Professional на мощный ноутбук, но практически все команды Chef, которые я запускаю, невероятно медленны. Я заметил, что Ruby Interpreter работает очень медленно, поэтому возникает проблема с тем, как версия ruby, включенная в последнюю версию ChefDK, работает в Windows 10.

Конфигурация:

ruby version: ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32]
Chef Development Kit Version: 3.9.0
chef-client version: 14.12.3
delivery version: master (9d07501a3b347cc687c902319d23dc32dd5fa621)
berks version: 7.0.8
kitchen version: 1.24.0
inspec version: 3.9.3

Я пытался установить одну версию ChefDK, более новую (3.9.0 от предыдущей версии), которая тоже не работала. Я также попробовал команду перефразировки ножа, которая тоже не сработала.

Как мне выполнить эти команды до того, как я отрасту седыми волосами?

Например, в Windows Server 2016, просто запустив «Measure-Command {chef -v}», я получаю ужасные результаты:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 57
Milliseconds      : 697
Ticks             : 576977245
TotalDays         : 0.000667797737268519
TotalHours        : 0.0160271456944444
TotalMinutes      : 0.961628741666667
TotalSeconds      : 57.6977245
TotalMilliseconds : 57697.7245

Но когда я работаю на своем ноутбуке с Windows 10 Enterprise, результаты становятся еще хуже ...

Days              : 0
Hours             : 0
Minutes           : 17
Seconds           : 21
Milliseconds      : 422
Ticks             : 10414222706
TotalDays         : 0.0120534985023148
TotalHours        : 0.289283964055556
TotalMinutes      : 17.3570378433333
TotalSeconds      : 1041.4222706
TotalMilliseconds : 1041422.2706

Я ожидаю, что выполнение этих команд займет несколько секунд, а не минут.

1 Ответ

0 голосов
/ 17 июля 2019

Я улучшил производительность, используя встроенные двоичные файлы. Например, если ваш chefdk установлен на C:\opscode\chefdk, используйте C:\opscode\chefdk\embedded\bin вместо C:\opscode\chefdk\bin(which added to your global path). Есть разница:

Measure-Command { C:\opscode\chefdk\bin\knife.bat --version }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 9
Milliseconds      : 523
Ticks             : 95230328
TotalDays         : 0.000110220287037037
TotalHours        : 0.00264528688888889
TotalMinutes      : 0.158717213333333
TotalSeconds      : 9.5230328
TotalMilliseconds : 9523.0328
Measure-Command { C:\opscode\chefdk\embedded\bin\knife.bat --version }

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 610
Ticks             : 36100192
TotalDays         : 4.17826296296296E-05
TotalHours        : 0.00100278311111111
TotalMinutes      : 0.0601669866666667
TotalSeconds      : 3.6100192
TotalMilliseconds : 3610.0192
...