Terraform 在 Windows 上启动缓慢。已知问题还是只有我一个?

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 的已知行为吗?或者,我可以在系统上打开/关闭某些功能来改进这一点吗?

谢谢你!

Noa*_*ead 0

我同意 Tasos P 所提到的,检查您的防病毒软件以确保它不会在每次运行时都被扫描(有些防病毒软件会进行行为检测)。如果您运行的是默认窗口(仅使用 Windows Defender),则应该不会有问题。

另一件需要考虑的事情是磁盘 IO 瓶颈和计算机上运行的其他进程。通过打开 TRACE 的详细级别,您可以看到 terraform 引擎中步骤之间的调用时间,并可以确定这是否是 UI 瓶颈,或者它运行的主机资源不足,无法有效运行。