Ada*_*m L 5 windows performance terraform
在 Windows 上运行 Terraform 二进制文件的执行速度一再缓慢。在 mac/linux 上运行应用程序,仅对于简单的outputs.tf(没有main.tf)几乎可以立即启动和完成
output "0" {
value = "${cidrsubnet(var.app_vpc_cidr, 7, 0)}"
}
output "1" {
value = "${cidrsubnet(var.app_vpc_cidr, 7, 1)}"
}
output "2" {
value = "${cidrsubnet(var.app_vpc_cidr, 7, 2)}"
}
Run Code Online (Sandbox Code Playgroud)
运行以下命令行:
$ date; time terraform.exe apply; date
Run Code Online (Sandbox Code Playgroud)
给出输出:
Tue, Oct 03, 2017 3:07:00 PM
Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
Outputs:
0 = 10.11.0.0/23
1 = 10.11.2.0/23
2 = 10.11.4.0/23
real 0m13.098s
user 0m1.217s
sys 0m0.140s
Tue, Oct 03, 2017 3:07:13 PM
Run Code Online (Sandbox Code Playgroud)
好的,所以它开始于3:07:00 结束于3:07:13
13秒
日志 (TRACE) 的前 3 行显示:
2017/10/03 15:07:12 [INFO] Terraform version: 0.10.6 8712b03839d1f63c0bfe11cf5f08e94014aeb85c
2017/10/03 15:07:12 [INFO] Go runtime version: go1.9
2017/10/03 15:07:12 [INFO] CLI args: []string{"C:\\dev\\terraform\\terraform.exe", "apply"}
Run Code Online (Sandbox Code Playgroud)
发射和输出之间间隔 12 秒。
我的持续时间超过 45 秒,其中一些花费在像上面这样的启动中,而另一些则处于中间或结束过程,没有等待任何资源的迹象(仅使用相同的outputs.tf)
2017/10/03 01:32:36 [TRACE] [walkValidate] Exiting eval tree: meta.count-boundary (count boundary fixup)
2017/10/03 01:32:42 [INFO] backend/local: apply calling Refresh
Run Code Online (Sandbox Code Playgroud)
这是 Windows 的已知行为吗?或者,我可以在系统上打开/关闭某些功能来改进这一点吗?
谢谢你!
我同意 Tasos P 所提到的,检查您的防病毒软件以确保它不会在每次运行时都被扫描(有些防病毒软件会进行行为检测)。如果您运行的是默认窗口(仅使用 Windows Defender),则应该不会有问题。
另一件需要考虑的事情是磁盘 IO 瓶颈和计算机上运行的其他进程。通过打开 TRACE 的详细级别,您可以看到 terraform 引擎中步骤之间的调用时间,并可以确定这是否是 UI 瓶颈,或者它运行的主机资源不足,无法有效运行。