ruby - 如何在Windows 10上提高ChefDK命令的性能?

标签 ruby windows chef-infra

过去,我已经在Windows 7上安装了ChefDK,并且运行速度相当快。最近,我在功能强大的笔记本电脑上的Windows 10 Professional 64位上安装了新版本的ChefDK,但实际上,我运行的每个Chef命令都非常慢。我注意到Ruby解释器非常慢,因此最新的ChefDK中包含的 ruby 版本在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

我希望运行这些命令只需几秒钟,而不是几分钟。

更新:

更新ChefDK之后,它仍然很慢而且不是很快,但是它是重要的新信息:
ChefDK version: 4.2.0
Chef Infra Client version: 15.1.36
Chef InSpec version: 4.7.3
Test Kitchen version: 2.2.5
Foodcritic version: 16.1.1
Cookstyle version: 5.0.0
Measure-Command { C:\opscode\chefdk\bin\knife.bat --version }
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 10
Milliseconds      : 647

Measure-Command { C:\opscode\chefdk\embedded\bin\knife.bat --version }
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 17
Milliseconds      : 480

最佳答案

我使用嵌入式二进制文件提高了性能。例如,如果您的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

关于ruby - 如何在Windows 10上提高ChefDK命令的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739063/

相关文章:

c# - 在控制台应用程序中显示多行文本?

ruby-on-rails - RoR Heroku 的 Chef Recipe

ruby - Chef : Upload and re-apply a cookbook to a Node

ruby - 将第一行作为下一行哈希的键?

ruby-on-rails - Rails 帮助简单表单 : undefined method `model_name' for Hash:Class

ruby - 如何在没有 rails 的情况下禁用 activerecord-oracle_enhanced-adapter 中的序列?

ruby-on-rails - 格式化加密字符串以作为 URL 参数传递

windows - css @keyframes 动画在 Windows 的 Safari 中不起作用

windows - ddev/docker 失败,出现 "Failed programming external connectivity",Windows 10

chef-infra - Chef 服务器与 Chef repo 之间的区别?