ruby - 您如何提高 Windows 10 上 ChefDK 命令的性能?
问题描述
过去,我在 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),但也没有成功。我也尝试过 knife rehash 命令,但也没有用。
在我长出更多白发之前如何运行这些命令?
例如,在 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
推荐阅读
- c++ - Qt C++ macOS 问题。我正在使用函数 .find("a word") 在多集中搜索单词,它适用于 windows 但不适用于 mac
- javascript - .d.ts 文件中的意外标识符
- javascript - 为什么在使用“mammoth”转换简单的 .docx 文件时没有出现此类文件错误?
- python - 如何删除一些复选框并使用单个按钮创建另一个复选框?
- visual-c++ - 我可以使用两个以上的 istream 重载运算符吗?
- r - 如何标准化 R 中的一列数据并获取贝尔曲线直方图以找出一个范围内的百分比?
- autohotkey - 发送后自动热键箭头键卡住/阻塞到无穷大
- c++ - 我应该如何替换矢量
::const_iterator 在 API 中? - r - 有没有办法避免在 R 中创建临时文件?
- html - 我试图在我的块中有两列,但是,块外的内容溢出。我该如何解决?